Глобальная переменная для реагировать


Привет, ребята, я еще новичок, чтобы реагировать, и я не знаю, как использовать глобальную переменную. Я хочу сделать " это.реквизит.тема.текст " глобальная переменная, чтобы использовать ее в другом приложении моего проекта. как я могу это сделать ?

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,
};
2 2

2 ответа:

Это ужасная идея, но, вероятно, лучший/самый простой способ использовать глобальную переменную в React-это поместить ее на window. В компоненте вы можете сделать что-то вроде window.topicText="some text", а затем получить доступ к нему через window.topicText везде.

В идеале, если у вас есть данные, и в вашем случае вероятное состояние, которое вам нужно сохранить от компонента к компоненту, вы должны искать что-то вроде Redux или Flux. Я предпочитаю "возвращение".

Вы можете попробовать это: Объявите свою глобальную переменную перед приложением основного компонента.js и передать эту переменную в качестве реквизита вниз по дереву.

Родитель.js

var myVar = {}

class MyComponent extends Component {

...
...
myVar = new Object();
...
...
render() {
   return <div>
                 \\ children
                 <MyLeftBranch myVar={myVar} />
                 <MyRightBranch myVar={myVar} />
              </div>
}
}

export default MyComponent;

Ребенок.js

class Child extends Component {
     { myVar } = this.props;
     \\use myVar
}