![](/img/trans.png)
[英]How to correctly set state in a loop in react functional component using useState
[英]Previous state in a useState functional component
我需要根据用户的输入旋转一个元素。 问题是,在我的功能组件中,我使用 useState 挂钩来存储和更新用户键入的值,但元素的旋转不是基于最后一个输入,而是基于前一个输入。
我在 CodeSandbox 中重新创建了简化示例来说明问题。
如何使其在功能组件中正常工作?
https://codesandbox.io/s/strange-clarke-nlyuo?file=/src/App.js:0-762
您不应该进入 DOM 来设置转换。 您应该从输入中删除 querySelector 行。
<input
type="number"
max={359}
value={value}
onChange={(e) => {
setValue(e.target.value);
// don't do this 👇
document.querySelector("h1").style.transform = `rotate(${value}deg)`;
}}
/>
state 更改将触发重新渲染,因此只需在渲染期间设置变换:
<h1
style={{
transform: `rotate(${value}deg)`,
border: "1px solid pink",
display: "inline",
padding: "10px"
}}
>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.