javascript - 抽屉关闭时触发 useEffect 的问题
问题描述
我正在使用 Material-UI 抽屉组件,并希望从另一个组件切换抽屉。我使用 React HookuseEffect
来监听props.open
变量何时发生变化。问题是,即使变量再次设置,变量也不会从 true 改变。我将通过下面的代码片段进一步解释:
在我的抽屉组件中:
const [open, setOpen] = useState(props.open);
useEffect(() => {
setOpen(props.open)
}, [props.open])
return (
<Drawer anchor="left" open={open}>
<HeadContainer>
<Header>{`Edit ${props.name}`}</Header>
<IconButton onClick={() => setOpen(false)}>
<Close />
</IconButton>
</HeadContainer>
...
在我调用抽屉的组件中:
const [open, setOpen] = useState(false);
return(
...
<IconButton onClick={() => setOpen(true)}>
<Edit/>
</IconButton>
...
如您所见,我希望关闭 iconButton 关闭抽屉,并希望其他组件中的编辑按钮打开抽屉。问题是抽屉只打开一次,因为props.open
变量只真正“改变一次”,从null
到true
。现在,每隔一次它从哪个更改true
为true
不足以呈现更新useEffect
我希望我解释清楚了。请帮忙!!!
解决方案
推荐阅读
- javascript - JWT 使用算法 ES256 生成令牌
- r - 通过匹配 ID 创建新列
- xml - 划分一组项 XPath
- powershell - 我想在 Windows 事件日志的应用程序和服务日志区域中创建一个自定义文件夹
- python - 在 Keras 中用于恶意软件机器学习的最佳损失函数和优化器?
- typescript - 即使我没有实现接口的所有强制属性,Typescript 也没有显示错误
- opengl - GLsizeiptr 和 GLintptr - 函数列表
- excel - 如何重置按钮的外观?
- python - 无法使用 DRF APIClient() 更改标头
- laravel - 为什么登录重定向在 Laravel 中不起作用