javascript - 材质 UI 持久抽屉闪烁
问题描述
我目前正在尝试实现一个持久抽屉,到目前为止,如果我将 className 放在我的组件中,就像这样......
<div>
<FitTracHeader
className={clsx(classes.appBar, {[classes.appBarShift]: drawer})} <- className here works but need to do for every component
toggleDarkMode={props.toggleDarkMode}
darkMode={props.darkMode}
searchFilter={searchFilter}
toggleDrawer={() => toggleDrawer(!drawer)}
/>
... *Additional components that also should shrink upon drawer opening*
</div>
因为我想拥有多个组件,所以我不想将这个 className 作为 props 重复传递给所有子组件,而是将它添加到封装我所有组件的 div 标记中。问题在于屏幕闪烁,如此处所示https://www.youtube.com/watch?v=2NU4vJNWSGc (注意:视频的前半部分显示了上述代码。然后我将其修改为底部代码并然后我们看到闪烁。)
<div className={clsx(classes.appBar, {[classes.appBarShift]: drawer})}>
<FitTracHeader
toggleDarkMode={props.toggleDarkMode}
darkMode={props.darkMode}
searchFilter={searchFilter}
toggleDrawer={() => toggleDrawer(!drawer)}
/>
... *Additional components that also should shrink upon drawer opening*
</div>
我根据可用的文档创建的标题和应用栏 https://material-ui.com/components/drawers/
这可能是一个重要的 UI 错误还是我做错了什么?干杯!
解决方案
推荐阅读
- python - Python:替换后仍有多个空格?
- redux-form - 表单提交后如何取消 react-final-form 验证?
- windows - 在四个 3840 x 2160 屏幕上自动打开和定位八个网页 (Windows 10)
- soap - C0000005 ACCESS_VIOLATION 异常与 Progress Openedge 调用 Web 服务时
- python - 通过“文件名”检索 GridFS 文档的文档“_id”
- javascript - 我们如何在打字稿中创建带有前缀/后缀单词的字符串类型?
- excel - 如何在excel中将a+bi表单数据更改为复数?
- mysql - 在远程主机上执行 mysql 查询时转义 mysql 密码中的特殊字符
- forms - 如果未选中复选框(= 请求为空),则不处理 Symfony 表单
- python - 如何获取值具有特定值的行的索引?