所以,我有一个组件,它使用像这样的props呈现另一个组件:
`<Component_One>
<Component_Two onChange={this.changeSomething} />
</Component_One>`
在 Component_One 中,该函数changeSomething()
接受一个参数:id
所以里面Component_One
,changeSomething()
看起来像这样:
`changeSomething(id) {
this.setState({something: id});
}`
Component_Two
看起来像这样:
`<div id="componenttwo">
<div onClick={this.props.onChange(0)}>
<div className="badge"></div>
</div>
<div onClick={this.props.onChange(1)}>
<div className="badge"></div>
</div>
<div onClick={this.props.onChange(2)}>
<div className="badge"></div>
</div>
</div>`
对象是进入this.state.something
内部Component_One
以等于显式输入id
的 div Component_Two
......
但它会引发此错误: SCRIPT5022: Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.
那么如何在不创建无限循环的情况下将显式类型的参数传递给“prop 函数”呢?