【发布时间】:2017-03-25 20:54:07
【问题描述】:
无法弄清楚出了什么问题。 我单击一个按钮,这将设置状态和状态设置,将键更改为真,如果该键为真,则应呈现不同的输出。这是代码:
点击按钮调用函数:
<input type="submit" value="I can play" onClick={() => this.canPlay()}/>
运行这个函数:
canPlay: function() {
let name = this.props.value;
console.log(name, 'name');
let email = 'mark@mail';
this.submitUserResponseCanPlay(this.today(), name, email)
this.setState({thanks: true}) //SET STATE HERE
},
(感谢在 getInitialState 中设置为 false)
然后在渲染函数中:
render: function(){
let output;
if (this.state.thanks){
output = <Thanks />;
}
如果状态为真,则渲染新的输出。 ` 部分是一个类,它在渲染函数中只有一个返回部分,如下所示:
var Thanks = React.createClass({
render: function(){
return (
<div id="results" className="search-results">
Thanks, your answer has been recorded!
</div>
)
}
});
但这并没有显示出来。知道为什么吗??
奇怪的是,在我的文件的另一部分中是这样的,而那部分有效。即我之前单击了一个提交按钮,这会将键/值对从 false 更改为 true 并呈现新的页面布局。只是不在这里工作。也许我错过了一些小东西..
【问题讨论】:
-
我记得你忘记了 render() 方法中的 return()
-
您可以发布整个组件而不是将其拆分为多个部分吗?可能你没有绑定 canPlay
-
组件很大。但你还想看什么?有两个组件
-
@Borjante 我只是把它省略了,所以不要包含很多代码
-
这只是一个提示,但对我来说,通常是流氓
shouldComponentUpdate缺少状态比较导致这种行为。
标签: javascript html reactjs state setstate