【发布时间】:2020-05-09 19:46:41
【问题描述】:
我需要有关 redux-saga 和处理异步调用方式的建议。我找不到问题的答案。
我想知道如何正确处理异步 API 调用,该调用返回仅在一个组件中使用的数据(因此无法将其存储在商店中)?
在我的 react 应用程序中,我使用 redux-saga 来处理异步调用。当 saga 正确完成时,我会发送一个成功操作,将结果存储在商店中。
但是,当我只想在一个组件中显示结果时,我发现存储结果毫无用处。相反,我想运行一个 saga 并通过回调数据返回到我的组件,而不将其存储在存储中。可能吗 ?我该怎么做?
谢谢。
【问题讨论】:
-
为什么要使用redux-saga进行这样的api调用,只是在该组件的
componentDidMount中使用fetch,并将需要的数据保存到之后的状态? -
是的,我完全同意这种方式。我想知道使用本地状态和 redux 是否是一个好习惯。因此使用 redux-saga 的原因是什么?也许当您想进行异步调用并继续导航到您的应用程序时?还有什么用例?
-
@onedkr - 使用本地状态有很多原因,没有严格的规则强制你只使用 redux 存储。在您的情况下,将数据存储在本地状态是有意义的,因为它不会影响应用程序中的其他组件。所以你不需要使用。关于 redux-saga,你有没有尝试在你的 saga 中返回
yield response.json();?这应该可以从componentDidMount() -
@jank 我从不尝试返回 response.json() 但如何从 saga 或我的 dispatch({ type:MY_ACTION }) 中检索它?
标签: reactjs react-redux redux-saga