我有一个选择器,用于检索状态中的错误。这只是一个布尔值。
const error = useSelector((state: IAppState) => {
return state?.error?.securityProfileError
})
True
表示有错误。
False
表示没有错误。
这是我的代码。
const error = useSelector((state: IAppState) => {
return state?.error?.securityProfileError
})
useEffect(() => {
if (error) showToast(lang.messages.errors.profile)
})
如您所见,在useEffect
挂钩内,我检查是否有错误,如果有错误,我会举杯敬酒。
这是问题所在。
由于useEffect
被多次调用,并且error
可以保持true
,因此我收到了多条吐司消息。我只想要一个。
但是,我不能像这样使用useEffect
...
useEffect(() => {
// do stuff
}, []);
因为它只触发一次,并且如果error
以false
开头但又转到true
,我的吐司面包就再也没有出现,因为……好吧,{{ 1}}仅触发一次。
所以,我不确定在这里做什么。
很好奇听到您的建议。