Javascript 如何设置组件外部的状态?

Javascript 如何设置组件外部的状态?,javascript,reactjs,Javascript,Reactjs,我想将事件处理程序状态更改逻辑与React组件A解耦,并将其放入类B中B类(因此不是反应组件)应该能够更改组件a的状态 因此,我不想将函数引用setState(B.handle)传递给setState,但可以从class B传递setState 怎么做 将此传递给B类构造函数是一种方法吗 编辑:很抱歉,我忘了提到我不能使用第三方库来保持它的依赖关系自由。从另一个组件设置状态的常用方法是通过redux之类的状态引擎。当一个状态发生变化时,如果多个组件正在监视该状态,它可以更新关心该应用程序状态片段

我想将事件处理程序状态更改逻辑与
React组件A
解耦,并将其放入
类B
中<代码>B类(因此不是反应组件)应该能够更改
组件a的状态

因此,我不想将函数引用
setState(B.handle)
传递给setState,但可以从
class B
传递
setState

怎么做

传递给B类构造函数是一种方法吗


编辑:很抱歉,我忘了提到我不能使用第三方库来保持它的依赖关系自由。

从另一个组件设置状态的常用方法是通过redux之类的状态引擎。当一个状态发生变化时,如果多个组件正在监视该状态,它可以更新关心该应用程序状态片段的每个组件

在React的最新版本中,他们引入了提供类似功能的React。

我认为我们可以使用参考文献:

类MyComponent扩展了React.Component{ 建造师(道具){ 超级(道具); this.myRef=React.createRef(); } ..//某处 this.myRef.setState(newState); ... render(){ 返回; } }

要更改道具:

为什么不使用传递到
setState
的函数?这绝对是解决问题的方法。@WilomGfx它有很多逻辑(库),组件会变得混乱。在这种情况下,使用诸如redux之类的状态引擎来提升您的状态upOP提到组件B不是一个组件component@ShubhamKhatriRedux提供了一个可以手动分派操作的操作。
class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.myRef = React.createRef();
  }
  .... // Somewhere
  this.myRef.setState(newState);
  ...
  render() {
   return <ChildComponent ref={this.myRef} />;
  }
}