Even if you try doing this way, it is not correct method to access the state
. Better to have a parent component whose children are a
and b
. The ParentComponent
will maintain the state
and pass it as props to the children.
For instance,
var ParentComponent = React.createClass({
getInitialState : function() {
return {
first: 1,
}
}
changeFirst: function(newValue) {
this.setState({
first: newValue,
});
}
render: function() {
return (
<a first={this.state.first} changeFirst={this.changeFirst.bind(this)} />
<b first={this.state.first} changeFirst={this.changeFirst.bind(this)} />
)
}
}
Now in your child compoenents a
and b
, access first
variable using this.props.first
. When you wish to change the value of first
call this.props.changeFirst()
function of the ParentComponent
. This will change the value and will be thus reflected in both the children a
and b
.
I am writing component a
here, b
will be similar:
var a = React.createClass({
render: function() {
var first = this.props.first; // access first anywhere using this.props.first in child
// render JSX
}
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…