为什么useReducer第一个参数设置为dispatch的值?

问题描述 投票:0回答:1

下面的代码就像useState(useReducer那样),但我找不到任何文件来解释原因。但是,我用调试器搞清楚了。

const reducer = (state,action) => {
  return action;
};

const [email,setEmail] = useReducer(reducer,"");
reactjs react-hooks
1个回答
1
投票

这是因为减速器是如何编写的:

const reducer = (state,action) => {
  return action;
};

调度值作为reducer中的第二个action参数接收。新状态设置为从reducer返回的值,即action。这样,useReducer调度函数的工作方式与useState状态setter相同。这大致是useState内部发生的事情,因为它在内部使用useReducer

如果返回action,它会表现不同。

© www.soinside.com 2019 - 2024. All rights reserved.