我是React Hooks的新手。我怀疑您何时需要执行任何API调用 在Redux中使用Hooks如何编写异步API调用函数。应该是局部函数吗?或者它应该遵循与React-Redux中相同的模式。
答案 0 :(得分:3)
存在两种可能混淆的不同技术。
使用hooks进行Redux。
它们是React-redux库的一部分(connect
函数也是其中的一部分)。在这种情况下,类似useDispatch
的钩子与使用connect
并将第二个参数设置为null
的钩子相同。 dispatch
函数将对组件可用,如果您在创建商店时使用了thunk中间件,则可以分派普通对象操作(例如{ type: ACTION1, payload: 'payload' }
或异步操作(函数)。
因此,在这种情况下,钩子是访问同一Redux存储的另一种方式
反应挂钩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调用仅执行一次,在这种情况下,请将值视为空。而且你很好走。