我在 React 中使用 Redux 和 Class Components。在 Redux 商店中具有以下两种状态。
{ spinner: false, refresh: false }
在父组件中,我有一个调度函数来改变这个状态。
class App extends React.Component {
reloadHandler = () => {
console.log("[App] reloadComponent");
this.props.onShowSpinner();
this.props.onRefresh();
};
render() {
return <Child reloadApp={this.reloadHandler} />;
}
}
在子组件中,我试图重新加载父组件,如下所示。
class Child extends React.Component {
static getDerivedStateFromProps(props, state) {
if (somecondition) {
// doing some redux store update
props.reloadApp();
}
}
render() {
return <button />;
}
}
我收到如下错误。
警告:无法从不同组件的函数体内部更新组件。
如何消除此警告?我在这里做错了什么?