我想将事件处理程序状态更改逻辑与React Component A
分离并将其放入class B
. class B
(所以不是 React 组件(应该能够更改 component A
的状态。
所以我不想将函数引用setState(B.handle)
传递给setState,而是能够从class B
setState
。
怎么办?
将this
传递给 B 类的构造函数是要走的路吗?
编辑:抱歉,忘了提到我无法使用第三方库来保持其依赖项自由。
从另一个组件设置状态的常用方法是通过像 redux 这样的状态引擎。当状态发生更改时,如果多个组件正在监视该状态,则可以更新关心应用程序状态切片的每个组件。
在最新版本的 React 中,他们引入了提供类似功能的上下文。
我认为我们可以使用 refs: https://reactjs.org/docs/refs-and-the-dom.html
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.myRef = React.createRef();
}
.... // Somewhere
this.myRef.setState(newState);
...
render() {
return <ChildComponent ref={this.myRef} />;
}
}
要更改道具:https://facebook.github.io/react-native/docs/direct-manipulation