当您使用React-hooks时,我们应该在Redux的Api异步调用哪里?

时间:2019-10-18 11:04:54

标签: reactjs redux react-hooks

我是React Hooks的新手。我怀疑您何时需要执行任何API调用 在Redux中使用Hooks如何编写异步API调用函数。应该是局部函数吗?或者它应该遵循与React-Redux中相同的模式。

2 个答案:

答案 0 :(得分:3)

存在两种可能混淆的不同技术。

  1. 使用hooks进行Redux。

    它们是React-redux库的一部分(connect函数也是其中的一部分)。在这种情况下,类似useDispatch的钩子与使用connect并将第二个参数设置为null的钩子相同。 dispatch函数将对组件可用,如果您在创建商店时使用了thunk中间件,则可以分派普通对象操作(例如{ type: ACTION1, payload: 'payload' }或异步操作(函数)。

    因此,在这种情况下,钩子是访问同一Redux存储的另一种方式

  2. 反应挂钩useReducer。这与Redux完全无关。要使用useReducer,您不必将Redux添加到项目中。 useReducer由React本身提供,与Redux相比有很多限制。这里是一些:

    a。无法使用中间件。所有异步操作都应使用useEffect或类似技术进行处理。

    b。它不能与任何React-redux函数一起使用。因此,您必须建立上下文或使用dispatch向孩子传递props函数

    useReducer被认为是Redux的简化版本

答案 1 :(得分:0)

您可以使用useEffect挂钩。下面是一个示例:

const todo = () => {
    useEffect(() => {
        <api calls>
    }, [ <value to be watched> ] );       
}

每当要更改的值更改时,第一个参数(即上面的箭头函数)就会执行。

比方说,您希望api调用仅执行一次,在这种情况下,请将值视为空。而且你很好走。