首页 > 解决方案 > 如何仅为一个渲染更新几个 useState?

问题描述

我有一个关于使用 useState 重新渲染的小问题。例如,我有五个 useState 方法:

setFirstState(someValue);
setSecondState(someValueSecond);
setThirdState(someValueThird);
...

我只想要一个带有反应钩子的渲染。你能给我解释一下,或者举个例子吗?

标签: reactjsreact-hooks

解决方案


您想useReducer改用,并使用具有(第一、第二、第三...)属性的对象启动它,然后每次修改您想要的对象。

声明你的初始值

const initialState = {
  someValue: 'someValue',
  someValueSecond: 'someValueSecond',
  someValueThird: 'someValueThird',
}

设置它

const [val, setVal] = React.useReducer(initalState);

然后在需要时进行修改。

setVal({someValue: 'anotherValue'});
setVal({someValueSecond: 'anotherValue'});
setVal({someValueThird: 'anotherValue'});

推荐阅读