反应的全局变量

alp*_*nix 4 javascript global-variables reactjs

大家好我还是新手做出反应,我不知道,如何使用全局变量.我想让"this.props.topic.text"成为一个全局变量,以便在我项目的其他应用程序中使用它.我怎样才能做到这一点 ?

export default class Topic extends Component {

  deleteThisTopic() {
    Topics.remove(this.props.topic._id);
  }

  test() {
  
  }
  render() {
    return (

      <Router>
    <div>
      <ul>
        <Link to="/sub"><li onClick={this.test.bind(this)}>{this.props.topic.text}  ARN:  {this.props.topic.arn}</li></Link>
        <Link to="/log"><button onClick={this.test.bind(this)}>S'inscrire</button></Link>
        <Link to="/"><button >Cacher</button></Link>
        <button onClick={this.deleteThisTopic.bind(this)}>Suprimer</button>
      </ul>

      <hr/>
      <Route exact path="/log" component={AppInscription}/>
      <Route exact path="/sub" component={AppSub}/>


    </div>
  </Router>
  );
  }
}

Topic.propTypes = {

  topic: PropTypes.object.isRequired,
};
Run Code Online (Sandbox Code Playgroud)

Gre*_*egg 8

这是一个可怕的想法,但在React中使用全局变量的最好/最简单的方法就是把它放在window.在组件中,您可以执行类似的操作window.topicText="some text",然后通过window.topicText其他任何位置访问它.

理想情况下,如果您有数据,并且在您的情况下可能处于状态,您需要在组件之间保持不变,那么您应该查看类似ReduxFlux的内容.我更喜欢Redux.

  • @alpheonix为什么在应用程序中只有一个可读/写的变量可以访问,只是因为你需要在少数地方使用它,为什么不是一个坏主意? (2认同)