1

クリック可能なコンテンツ ウィンドウを作成しようとしています。クリックすると、ウィンドウが変わります。画面上のコンテンツをフェードアウトさせ、新しいコンテンツをフェードインさせたいと思います。これまでのところ、フェードインは完了しています (と思います)。フェードアウトが思い通りにいかない。コンポーネントは画面に押し込まれ、その後フェードすることもなく消えます。必要に応じて、ライブ バージョンを GitHub ページにアップロードできます。

この投稿を読んだのですが、React バージョンが問題を引き起こしているのかどうかわかりません。そうじゃないって言いたいの?

とにかく、メインウィンドウのレンダリング機能は次のとおりです。

  render: function() {
    if (this.state.window == 'main-window') {
      var result = 
        <div key={'main'} className='contentWindow'>
          <PortalBox portalType={'dev'} handleClick={this.changeToDev}/>
          <PortalBox portalType={'personal'} handleClick={this.changeToPersonal}/>
        </div>;
    } else if (this.state.window == 'dev-window') {
      var result = <DevWindow key={'dev'} handleClick={this.changeToMain}/>;
    } else {
      var result = <PersonalWindow key={'personal'} handleClick={this.changeToMain}/>;
    }
    return (
      <div>
        <Greetings brands={this.props.brands}/>
        <ReactCSSTransitionGroup transitionName="example" transitionEnterTimeout={1000} transitionLeaveTimeout={1000}>
          {result}
        </ReactCSSTransitionGroup>
        <Footer/>
      </div>
    );
  }

CSS は次のとおりです。

.contentWindow {
  width: 100%;
  height: 450px;
  transition: opacity 1000ms ease-in;
}

.example-appear {
  opacity: 0.01;
}

.example-appear .example-appear-active {
  opacity: 1;
}

.example-enter {
  opacity: 0.01;
}

.example-enter .example-enter-active {
  opacity: 1;
  /*transition: opacity 1000ms ease-in;*/
}

.example-leave {
/*  visibility: hidden;
  height: 0px;
  width: 0px;*/
  opacity: 1;
}

.example-leave .example-leave-active {
  opacity: 0.01;
  /*transition: opacity 1000ms ease-in;*/
}

.example-leave の下にある可視性のコメントを外すと、2 つのパネルのうちの 1 つが非表示になりますが、両方は非表示になりません。

私はこのガイドに従っています。

何か案は?両方のパネルを非表示にするには、可視化を行う必要がありますか? それとも、まったく別のアプローチを試す必要がありますか? ありがとうございました!

4

0 に答える 0