此代码导致无限循环。一个if ... else带有两个导致无限循环的setStates
我试图呈现一个按钮和文本,显示按钮被点击了多少次,直到它被点击10次,之后按钮应该消失,文本重新回到之前的任何事情+“现在它消失了“。
class button extends React.Component
{
constructor (props)
{
super(props)
this.state =
{
num: 0,
para: null
}
}
render() {
var myString = <p> you clicked the button {this.state.num} times {this.state.para} </p>;
let either;
if (this.state.num < 10) {
either = (
<Button onClick={() => { this.handleButtonClick() }} bsStyle="danger"> button </Button>)
} else {
either = null;
this.setState({ para: "and now it's gone" });
}
return(
<Grid>
<Row>
<Col xs={7} sm={7} md={7} lg={7}> {myString} </Col>
<Col xs={5} sm={5} md={5} lg={5}>
{ either }
</Col>
</Row>
</Grid>
)
}
handleButtonClick() {
this.setState({
num: this.state.num + 1
})
}
}
任何帮助,将不胜感激!
有问题的特定错误是“setState(...):无法在现有状态转换期间更新(例如在'render'或另一个组件的构造函数中)。” – jaonthecob
错误消息对我来说似乎很清楚。 – Pointy
不要在'render'中使用'setState' – Hamms