我想在某个事件被触发时同时调用多个setter函数。
例如:
const [running, setRunning] = useState(false);
const [jumping, setJumping] = useState(true);
那么,如果我们想将setRunning
和setJumping
合并在一起,我们应该怎么做?(避免重新呈现组件)
我想在某个事件被触发时同时调用多个setter函数。
例如:
const [running, setRunning] = useState(false);
const [jumping, setJumping] = useState(true);
那么,如果我们想将setRunning
和setJumping
合并在一起,我们应该怎么做?(避免重新呈现组件)
2条答案
按热度按时间fnx2tebb1#
您可以按顺序调用它们,如下所示(demo):
或者,您也可以同时设定这两个参数,如下所示:
https://codesandbox.io/s/0pwnm2z94w
6tdlim6h2#
这是一个很好的问题,因为它挑战了为每个状态片设置一个
setState
的最佳实践。最好的方法是创建一个有两个关键字的POJO(显式),一个用于跑,一个用于跳。这样,setter将有3个排列。
我不认为这是一个最好的做法,你应该尽可能地把它们分开,以避免这种模式。然而,这是一个值得合并它们以保存渲染的例子(这可能是可取的)。