我试图通过国家财产' val'到了'柜台'组件并获得计数器'单击装入按钮时显示其更新值。我的问题是我可以通过' counterUpdate'功能并从“计数器”调用它,但是我无法获得“支持”功能。即使我正在更新' state.val',也要在视图中更新。 任何关于为什么会出现此问题的想法和建议都会受到高度赞赏。
var App = React.createClass({
getInitialState: function(){
return {
val: 0
}
},
counterUpdate: function(){
this.setState(function(previousState, props){
return {
val: previousState.val + 1
}
})
},
mount: function(){
ReactDOM.render(<Counter cu={this.counterUpdate} >{this.state.val}</Counter>, document.getElementById('a'))
},
render: function(){
return (
<div>
<button onClick={this.mount}>MOUNT</button>
<div id="a"></div>
</div>
)
}
});
var Counter = React.createClass({
render: function(){
return (
<button onClick={this.props.cu}>{this.props.children}</button>
)
}
});
ReactDOM.render(<App />, document.getElementById('content'));
答案 0 :(得分:3)
我不知道你的代码无法正常工作的具体细节,但在组件内部调用ReactDOM.render是一种奇怪的方法来处理它。我可能会做以下事情:
var App = React.createClass({
getInitialState: function(){
return {
val: 0,
showCounter: false,
}
},
counterUpdate: function(){
this.setState(function(previousState, props){
return {
val: previousState.val + 1
}
})
},
mount: function() {
this.setState({showCounter: true});
},
render: function(){
return (
<div>
<button onClick={this.mount}>MOUNT</button>
{
this.state.showCounter ? (<Counter cu={this.counterUpdate} >{this.state.val}</Counter>) : null
}
</div>
)
}
});