store.dispach、useDispatch和useReducer的dispatch有什么区别?

Les*_*alo 2 reactjs redux

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 状态。

Dre*_*ese 5

正确的,useReducer没有更新终极版商店。useReducer是一个常规的 React 钩子,并允许组件以功能方式应用本地状态更新,类似于 Redux 使用的模式,这是一个非常常见的全局应用程序状态管理库。将其useReducer视为 Redux 的组件状态版本,即应用程序状态。

useDispatch是由react-redux消耗 redux 上下文(包含存储/状态)提供的钩子,类似于connect高阶组件在包装组件时提供的功能。它们都提供了dispatch将操作分派到 redux 存储的功能。

store.dispatch dispatch功能。

注意: react-redux connect HOC 使用redux'sbindActionCreators将调度函数包装(绑定)到mapDispatchToProps.

  • 从术语角度来看,“dispatch”并不是“高阶函数”。它只是 `createStore` 返回的一个函数。从概念上讲,它相当于类上的方法。 (2认同)