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} />;
}
}