如何在反应中将状态提升两个级别?

Min*_*Jin 5 javascript state reactjs

React遵循这个例子。

我希望能够将状态提升两个级别。意思是,当事件发生在较低级别的组件时,我希望它影响两个级别的状态。我该怎么做?这甚至推荐吗?

例如,组件 A 是组件 B 的父级,组件 B 是组件 C 的父级。A -> B -> C。

在一个,

handleChange = (e) => {console.log(e)}
<B onChange={handleChange}/>
Run Code Online (Sandbox Code Playgroud)

在 B 中,

handleChange = (e) => this.props.onChange(e)
<C onChange={this.handleChange}/>
Run Code Online (Sandbox Code Playgroud)

在 C 中,

handleChange = (e) => this.props.onChange(e)
<button onClick={this.handleChange}></button>
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

Axn*_*yff 1

您不需要在 B 组件中重新创建该函数,只需将其传递即可。

B 看起来就像

<C onChange={this.props.onChange}/>
Run Code Online (Sandbox Code Playgroud)

对于 C 来说也是如此,您可以直接将事件属性附加到 onClick。