10

私は ReactCSSTransitionGroup を正常に動作させています (私は思います)。新しくマウントされたコンポーネントはそのすべての栄光にフェードインします。

問題は、置換されているコンポーネントが突然消えることです。これは、最終的にコンポーネントがビューポートに出入りすることを望んでいるため、私にとっては問題です...

エレガントに消える方法を残すコンポーネントに伝える方法がないようです。

何か不足していますか、それとも ReactCSSTransitionGroup は着信コンポーネントをアニメーション化することしかできませんか?

アップデート

以下のコード:

import React from "react";
import ReactDOM from "react-dom";
import { Router, Route, IndexRoute, hashHistory, Link } from "react-router";
import ReactCSSTransitionGroup from "react-addons-css-transition-group";


class PageOne extends React.Component {
  render() {
    return (
      <ReactCSSTransitionGroup transitionName="example" transitionAppear={true} transitionAppearTimeout={500} transitionEnterTimeout={500} transitionLeaveTimeout={500}>
        <div>
          HI FROM PAGE ONE<br />
          <br />
          <Link to="two">Take me to Page Two</Link>
        </div>
      </ReactCSSTransitionGroup>
    );
  }
}
class PageTwo extends React.Component {
  render() {
    return (
      <ReactCSSTransitionGroup transitionName="example" transitionAppear={true} transitionAppearTimeout={500} transitionEnterTimeout={500} transitionLeaveTimeout={500}>
        <div>
          HELLO FROM PAGE TWO<br />
          <br />
          <Link to="/">Go back to Page One</Link>
        </div>
      </ReactCSSTransitionGroup>
    );
  }
}


const app = document.getElementById('app');
ReactDOM.render(
  <Router history={hashHistory}>
    <Route path="/" component={PageOne}></Route>
    <Route path="two" component={PageTwo}></Route>
  </Router>,
app);

そしてCSS:

.example-enter {
  opacity: 0.01;
}
.example-enter.example-enter-active {
  opacity: 1;
  transition: opacity 500ms ease-in;
}
.example-leave {
  opacity: 1;
}
.example-leave.example-leave-active {
  opacity: 0.01;
  transition: opacity 300ms ease-in;
}
4

2 に答える 2

4

わかりました、彼らはそれがすでにうまくいっているように見えますが、私は今までそれを発見していませんでした.

React-Router git リポジトリには例のリストがあり、その中には「アニメーション」用のものがあります。このデモでは、要素を複製してキーを割り当てることにより、ReactCSSTransitionGroup を活用して「ページ」のイン/アウトをアニメーション化する方法を示します。

https://reacttraining.com/react-router/web/example/animated-transitions

于 2016-03-08T22:14:36.527 に答える
2

マウント/アンマウントされるコンポーネントに対して正常に機能するビンを作成しました。見て、それがあなたがしていることと似ていて、それでも問題を解決できないかどうか教えてください

于 2016-03-07T18:53:54.237 に答える