我正在学习React.目前我有几个components
被锁定为亲子关系,通过回调可以很容易地进行交流.
我有一个表(反应组件)和一个小模态ajax 形式(没有反应).当我从服务器收到响应(项目)时,我想将项目添加到表中.
我的主要问题是,是否有可能从外部响应触发组件状态更改(在这种情况下是服务器响应)?
enj*_*ife 74
可以在组件外触发组件状态更改吗?
是.这是一个简单的例子
在您的react组件中设置一个全局可用的闭包,它将在触发该函数时更新它的状态.
componentDidMount(){
globalVar.callback = (data) => {
// `this` refers to our react component
this.setState({...});
};
}
Run Code Online (Sandbox Code Playgroud)
然后,当您的ajax响应返回时,您可以使用返回的数据触发事件
globalVar.callback(data);
Run Code Online (Sandbox Code Playgroud)
或者对于更健壮的东西,使用自定义事件或订阅