繁体   English   中英

如何等待 react-redux 中的特定道具更改

[英]How to await a specific prop change in react-redux

我正在尝试编写一个通知,以便在对 API 成功进行提取调用时出现。 我正在使用带有 thunk 的 redux 来获取它,它将名为 loading 的道具的状态更改为 true/false,并将错误道具的状态更改为 null/字符串格式的错误。 我怎么能做到这一点?

您需要有一个额外的字段来通知组件获取已结束。 例如,在将加载设置为 false 的dispatch(fetchSuccess(...))中,您可以在其中一个减速器中添加消息字段:

...
switch(action.type){
   case FETCH_SUCCESS:
      return {...state, data: action.payload, loading: false, message: 'success'}
...
}

那是什么并不重要。 如果您的 API 发回statusCode: 200成功响应,您可以将其用作消息。

另一种选择是创建一个选择器并观察特定data: action.payload变化。

PS:如果您的通知处理是通过单独的 redux reducer 完成的,您也可以这样做:

...
try{
   dispatch(fetchLoading())
   ...
   const response = await axios.get(...)
   const data = response.data
   ...
   dispatch(fetchSuccess(data))
   disaptch(openNotification())
} catch(error){
   dispatch(fetchError(error.message))
}
...


暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM