javascript - 如何在react-redux中等待特定的prop更改

标签 javascript reactjs redux react-redux

我正在尝试编写一个通知,以便在成功对 API 进行提取调用时显示。我使用 redux 和 thunk 来获取它,它将名为“loading”的 prop 的状态更改为 true/false,并将 error prop 更改为 null/字符串格式的错误。我怎样才能做到这一点?

最佳答案

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

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

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

另一种选择是创建一个选择器并监视特定的数据:action.payload更改。

P.S.:如果您的通知处理是通过单独的 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))
}
...


关于javascript - 如何在react-redux中等待特定的prop更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60402104/

相关文章:

JavaScript : How to match string and var?

reactjs - 使用Semantic UI React,如何设置图像头像的宽度和高度?

javascript - 根据 key 的存在更新对象,否则形成新对象 : Javascript

javascript - React redux 工具包。如果我得到相同的值如何停止渲染?

reactjs - 使用 IIFE 从 Thunk 调度 Redux 操作

javascript - React redux 的 #applyMiddleware 如何通过返回 #createStore 而不是 store 来确保中间件仅应用一次?

javascript - Lodash:用值对象内部属性交换键

javascript - php-ajax 调用 json 数据并将该数据传递给 jguage js 让小部件显示该值

javascript - 从客户端获取页面内容(跨域)

reactjs - 当文本字段没有值时,将 Material UI 文本字段标签保持在顶部