Salut les gars, je suis toujours nouveau pour réagir et je ne sais pas comment utiliser la variable globale . Je veux faire de "this.props.topic.text" une variable globale à utiliser projet. Comment puis je faire ça ?
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,
};
C'est une idée terrible, mais le meilleur moyen/le plus simple d'utiliser une variable globale dans React consiste à la mettre sur la variable window
. Dans un composant, vous pouvez faire quelque chose comme window.topicText="some text"
puis y accéder via window.topicText
partout ailleurs.
Idéalement, si vous avez des données, et dans votre cas probable, que vous devez persister d'un composant à l'autre, vous devriez examiner quelque chose comme Redux ou Flux . Je préfère Redux.
Vous pouvez essayer ceci: Déclarez votre variable globale avant votre composant principal App.js et transmettez-la sous forme d’accessoires dans l’arbre.
Parent.js
var myVar = {}
class MyComponent extends Component {
...
...
myVar = new Object();
...
...
render() {
return <div>
\\ children
<MyLeftBranch myVar={myVar} />
<MyRightBranch myVar={myVar} />
</div>
}
}
export default MyComponent;
child.js
class Child extends Component {
{ myVar } = this.props;
\\use myVar
}