我是React的新手(一般来说也是Javascript的新手),并试图围绕可以用setState完成的工作来重新渲染页面上的React元素。
有没有办法在一个组件中使用setState来改变完全不同的元素的状态(即可能只共享DOM根节点的组件)?我试图实现这一点,但我得到错误“myElementOne.setState不是一个函数”。
还有另一种方法我应该接近这个吗?
NSManagedObjectContext
答案 0 :(得分:1)
您可以通过以下方式实现此目的:http://codepen.io/PiotrBerebecki/pen/YGEmBE
这个想法是:
App
)ElementOne
ElementTwo
完整代码:
var App = React.createClass({
getInitialState() {
return ({
isShowingInParent: true
});
},
toggleInParent() {
this.setState({
isShowingInParent: !this.state.isShowingInParent
});
},
render() {
return (
<div>
<ElementOne id="abc12345" isShowing={this.state.isShowingInParent}/>
<ElementTwo toggle={this.toggleInParent}/>
</div>
);
}
});
var ElementOne = React.createClass({
render() {
if (this.props.isShowing) {
return (
<div id="abc12345">
<h1>Hello World!</h1>
</div>
);
} else {
return <div/>;
}
}
});
var ElementTwo = React.createClass({
render() {
return <a href="#" onClick={this.props.toggle.bind(this)}>Click here to Show/Hide!</a>;
}
});
ReactDOM.render(<App/>,document.getElementById('content'));