如何将 this.state 转移到 react-routes?

Posted

技术标签:

【中文标题】如何将 this.state 转移到 react-routes?【英文标题】:How to transfer this.state to react-routes? 【发布时间】:2015-10-16 14:12:49 【问题描述】:

我在新的 react-router 中使用 react-router 和 ES6 将值传递给组件?我使用<Handler name = this.state.name /> 现在使用this.props.children。如何从组件中的 App 向其传输数据?

如何将 this.state 转移到 react-routes 中:

export default class App extends React.Component

  constructor () 
    this.state =  name: 'Username' ;
  

  render () 
    return (
      <div>
        this.props.children // <-- this.state ???
      </div>
    );
  
;

React.render((
  <Router history=HashHistory>
    <Route path="" component=App>
      <Route path="about" component=About />
    </Route>
  </Router>
), document.getElementById('app'));

this.props.children //

【问题讨论】:

【参考方案1】:

我建议从单独的 Flux 存储访问您存储在 App.state 中的信息,然后在您需要的每个组件中访问它们。 React 路由器不应该参与在路由之间传递数据。

【讨论】:

我完全同意你的观点,但是从主组件授权数据传输更方便。结果,我这样做了:this.props.children &amp;&amp; React.cloneElement(this.props.children, username: this.state ) 从 v1.0.0-beta3 的 API 文档中,我找不到您在以前版本中使用的方法,对我来说,这是 API 发展和正确选择的好兆头。

以上是关于如何将 this.state 转移到 react-routes?的主要内容,如果未能解决你的问题,请参考以下文章

如何将处于新状态的json对象中的特定数据保存到react native中

React:将图像从父组件中的 this.state 传递给子组件

将 this.state 传递给 react-router 1.x / React, Flux 中的子级

this.state.todos.map 不是函数,React.js

React setState注意事项

react表单和绑定事件及state和props-04