【发布时间】:2021-07-12 14:39:01
【问题描述】:
每次我输入和更改状态时,我的表单组件输入都会失去焦点,不知道为什么会失去焦点。
这是指向具有相同问题的沙盒的链接 https://codesandbox.io/s/quiet-dew-cf5wr?file=/src/App.js
【问题讨论】:
标签: javascript reactjs react-hooks
每次我输入和更改状态时,我的表单组件输入都会失去焦点,不知道为什么会失去焦点。
这是指向具有相同问题的沙盒的链接 https://codesandbox.io/s/quiet-dew-cf5wr?file=/src/App.js
【问题讨论】:
标签: javascript reactjs react-hooks
您是否尝试将 const MotionStack = motion(Stack); 放在 Form 函数之外?
...
+ const MotionStack = motion(Stack);
function Form() {
- const MotionStack = motion(Stack);
...
}
我认为这会影响生命周期,因为每次更新状态时都会重新生成。
另一种选择是使用 React.useMemo,以防止重新生成 MotionStack。
const MotionStack = React.useMemo(() => motion(Stack), []);
【讨论】:
这已经解决了,我的 Motion div 在组件内部,导致它在每次我输入时都会重新渲染。我只是把它移出了函数。
【讨论】: