import React, { useReducer } from "react";
Run Code Online (Sandbox Code Playgroud)
...
import { useDispatch } from "react-redux";
Run Code Online (Sandbox Code Playgroud)
...
import { createStore } from "redux";
const store = createStore(
Run Code Online (Sandbox Code Playgroud)
...我看到所有触发操作但 useReducer dispatch 不更新 redux 状态。
正确的,useReducer并没有更新终极版商店。useReducer是一个常规的 React 钩子,并允许组件以功能方式应用本地状态更新,类似于 Redux 使用的模式,这是一个非常常见的全局应用程序状态管理库。将其useReducer视为 Redux 的组件状态版本,即应用程序状态。
useDispatch是由react-redux消耗 redux 上下文(包含存储/状态)提供的钩子,类似于connect高阶组件在包装组件时提供的功能。它们都提供了dispatch将操作分派到 redux 存储的功能。
store.dispatch 是的dispatch功能。
注意: react-redux connect HOC 使用redux'sbindActionCreators将调度函数包装(绑定)到mapDispatchToProps.