作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 React 组件中有一个简单的 material-ui 切换。我想用它来切换状态(假/真)。如果我第一次使用 useState(false) 开始单击切换按钮,它会显示 false 而不是 true。
我想知道另一个 react Hook 是否可以解决这个问题。使用效果,使用回调...
const Component = () => {
const [toggleValue, setToggleValue] = useState(false);
const handleToggleChange = () => {
setToggleValue(!toggleValue);
console.log("toggle value in handle: " + toggleValue);
};
return(
<FormControlLabel
control={
<Switch
checked={toggleValue}
onChange={handleToggleChange}
value="my toggle"
/>
}
/>
);
};
我希望 setPreseason(!preseason);
将状态设置为与当前状态相反。从真到假,从假到真。
它可能是,但是当我在下一行记录状态时,它会记录初始状态,并且将始终记录与切换状态相反的状态。
最佳答案
useState
返回的状态更新函数
是异步的
如果您需要对state
更改使用reactuseEffect
是它的地方
const Component = () => {
const [toggleValue, setToggleValue] = useState(false);
const handleToggleValue = () => {
setToggleValue(!toggleValue);
};
useEffect(() => {
console.log("toggleValue: " + toggleValue);
// second argument to useEffect is an array of dependencies
// this function is going to run every time one of the dependencies
// changes
}, [toggleValue])
return (
<FormControlLabel
control={
<Switch
checked={toggleValue}
onChange={handleToggleValue}
value="my toggle"
/>
}
/>
);
}
关于javascript - 如何修复 HandleToggleState?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57486908/
我的 React 组件中有一个简单的 material-ui 切换。我想用它来切换状态(假/真)。如果我第一次使用 useState(false) 开始单击切换按钮,它会显示 false 而不是 tr
我是一名优秀的程序员,十分优秀!