javascript - 如何在不重新渲染的情况下调用 useState react hook 的多个 setter 函数?

标签 javascript reactjs react-hooks

我想在触发某些事件时同时调用多个 setter 函数。

某事像:

const [running, setRunning] = useState(false);
const [jumping, setJumping] = useState(true);

那如果我们想把setRunningsetJumping结合起来怎么办呢? (避免重新渲染组件)

最佳答案

您可以像这样按顺序调用它们 (demo):

const Comp = ({ flag }) => {
  const [running, setRunning] = useState(false);
  const [jumping, setJumping] = useState(false);

  const setBoth = (_e) => {
    setRunning(true);
    setJumping(true);
  };
  
  return (
    <>
      {"running: " + running}
      {"jumping: " + jumping}
      <button onClick={setBoth}>setboth</button>
    </>
  );
};

或者,您可以像这样同时设置它们:

const Comp = ({ flag }) => {
  const [RJ, setRJ] = useState([false, false]);

  const setBoth = (_e) => {
    setRJ([true, true]);
  };

  return (
    <>
      {"running: " + RJ[0]}
      {"jumping: " + RJ[1]}
      <button onClick={setBoth}>setboth</button>
    </>
  );
};

https://codesandbox.io/s/0pwnm2z94w

关于javascript - 如何在不重新渲染的情况下调用 useState react hook 的多个 setter 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55130032/

相关文章:

javascript - 检查对象是否在对象数组中 - javascript

javascript - Google Closure Compiler 如何处理引号(字符串文字)?

javascript - React 中动态加载的 CSS 无法间歇性工作

graphql - 与查询组件一起使用 react Apollo 钩子(Hook)时的不变违规

reactjs - useEffect 依赖项列表及其包含所有使用的变量的最佳实践

javascript - 如何使用函数增加对象中参数的值?

reactjs - React-Native是单线程执行还是多线程执行?

reactjs - redux-form 6 的 onSubmit 事件处理程序中缺少此内容

javascript - 如何使 Javascript 中的获取 API 模块化

javascript - JS实现解析XLS(Excel)文件