我正在学习React。目前,我有几条components链子作为父子链,通过回调很容易完成它们之间的通信。
components
我有一张 桌子 (反应成分)和一个小模态ajax 形式 (没有反应)。当我从服务器收到 响应 (一个项目)时,我想 将该项目添加到表中。
我的主要问题是,是否有可能从 外部响应* (在这种情况下为服务器响应) 触发 组件 状态更改 ? *
您可以在组件外部触发组件状态更改吗?
是。 这是一个简单的例子
在您的react组件中设置一个全局可用的闭包,当触发该函数时将更新其状态。
componentDidMount(){ globalVar.callback = (data) => { // `this` refers to our react component this.setState({...}); }; }
然后,当您的ajax响应返回时,您可以使用返回的数据触发事件
globalVar.callback(data);
或者,对于更强大的功能,请使用自定义事件或订阅