在实用程序功能Redux JS中更新值后立即分派异步操作和getState

时间:2020-05-31 13:34:09

标签: javascript redux

我有一个同步流

const data = store.getState().data
// ... rest of the code

如果data === undefined我想得到它并存储在data const中,与此类似

const data = store.getState().data || getData()
// wait till the data not undefined
// ... rest of the code

getData()只是dispatch({ type: GET_DATA_ASYNC })

的包装

由于此调度是async,它将被saga watcher捕获并执行,并且数据对象将被更新。

我的问题是我想不出如何优雅地处理这个问题,很明显,我想:

从商店获取价值

如果没有值-请求存储更新(通过现有操作)

此特定值更新后-找回

并将其存储在data const

顺便说一句:这都是在外部util函数中发生的

1 个答案:

答案 0 :(得分:0)

如果您正在使用React挂钩,则可以使用“ react-redux”中的useSelector挂钩。 该挂钩可让您直接访问商店并在商店更新时获取数据。

import { useSelector } from "react-redux";

export default function Test() {
    const data = useSelector(store => store.__reducerVariable_name__);
    console.log(data);
    // ...
    return data;
}