如何在组件外部设置状态?



我想将事件处理程序状态更改逻辑与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

最新更新