javascript - 页面之间的平滑过渡 - Reactjs

标签 javascript reactjs

我只想在所有页面之间添加平滑的过渡。我使用 ReactCSSTransitionGroup 并包装主布局。就像这样

class MainLayout extends Component {
  render () {
    return (
      <div>
        <TopNav />
          <ReactCSSTransitionGroup
            transitionName="example"
            transitionEnterTimeout={500}
            transitionLeaveTimeout={300}
            transitionAppear={true}
            transitionAppearTimeout={500}
          >
          {/* Content */}
          { this.props.content }
          </ReactCSSTransitionGroup>
        <BottomNav />
      </div>
    );
  }
}

这是我的路线配置。

 import React from 'react';
    import { mount } from 'react-mounter';
    import MainLayout from './layouts/MainLayout.jsx';
    import Home from './home/Home.jsx';

FlowRouter.route('/', {
  name: 'home',
  action () {
    mount(MainLayout, { content: (<Home />) });
    setTitle();
  },
});

现在第一次加载时工作正常。但导航到其他页面时转换不起作用。我该如何解决这个问题?

最佳答案

您应该通过克隆它并给它一个 key 来渲染子项,如下所示

{React.cloneElement(this.props.children, {
    key: this.props.location.pathname
})}

根据example来自 react 路由器的组件

关于javascript - 页面之间的平滑过渡 - Reactjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37718445/

相关文章:

javascript - 使用 enzyme 测试 `React.createRef` api

reactjs - Eslint-config-rallycoding 安装

javascript - 'res.location(path)' 什么都不做? (表达)

javascript - 如何在不使用重置按钮的情况下重置?

javascript - 如何从不属于我的 Canvas 中获取像素数据?

node.js - socket.io-client + react,在哪里连接到服务器?

javascript - 如何在 React 组件中使用 exif-js?

javascript - window.location = example.com?q=<user input> 是否易受 XSS 攻击?

javascript - ExpressJS - req.files 未定义或为空

javascript - React Jest 测试按钮 onClick