问题描述
我正在使用redux-thunk
进行API调用。从服务器返回响应时,我通过以下简单验证在componentDidUpdate
处捕获了它们
async componentDidUpdate(prevProps) {
if (this.props.successCalling && !prevProps.successCalling) {
executeSomeCode();
}
}
问题是,我在2个不同的屏幕上进行了2个相同的验证,当从服务器componentDidUpdate
返回响应时,两个验证都得到了满足。因此,它在两个不同的屏幕上同时运行两个executeSomeCode()
。我应该如何处理这种情况?
解决方法
在为特定屏幕调用服务时,您可以使用类级别的变量,该变量可以像-true / false一样用作开关,其中this.switch最初将设置为false。调用服务时,只需将该类变量更新为true,然后将该变量添加到上述示例中提到的if逻辑检查中即可。
这样,每个屏幕都会有自己的开关,可用于确定服务呼叫是否针对该特定屏幕。