reactjs - 刷新页面时选择组件丢失它的css
问题描述
我正在为我公司的休息室建立一个用 React 编写的小型网站,并使用 Gatsby 将应用程序翻译成静态内容。
我发现当我刷新菜单所在的页面时,Material-UI 中的 Select 元素会丢失它们的 CSS。
页面中的任何其他内容都不会丢失它的样式,包括MenuItem
我用来使用选项填充 Select 组件的 Material-UI 中的组件。
我正在使用styled-components
自定义 Select 组件的大小/位置/感觉,并且尝试删除样式以查看这是否是问题,但它不影响行为。
如果 1- 我登录到网站并 2- 导航到菜单页面,CSS 会正确呈现,但如果刷新页面,它会破坏Select
组件,导致它丢失 CSS。
+ 另外,如果我直接浏览到页面,它会破坏 Select 组件的 CSS。
我还注意到 Firefox 中的一些错误,当刷新页面时说它由于错误的选择器而忽略了规则集。可以在下面的链接中看到错误。
选择组件样式:
const StyledSelect = styled(Select)`
width: 80%;
margin-right: 10%;
margin-left: 10%;
margin-top: 3%;
margin-bottom: 3%;`
选择 render() 中使用的组件:
<StyledSelect
multiple={props.isMultiple}
value={props.value}
name={props.name}
onChange={props.handleChange}
>
{props.items.map(item => (
<MenuItem key={item._id} value={item}>
{item.Name}
</MenuItem>
))}
</StyledSelect>
我希望即使在页面刷新时 CSS 也能保持不变,但实际结果是 Select 组件在页面刷新后中断。
问题的 Gif:https :
//imgur.com/a/GKL6D2t Firefox CSS 警告图片:https ://imgur.com/cATTdZR
解决方案
render 方法中有条件语句吗?我也遇到了这个问题,但通过更换隐藏组件的布尔逻辑来解决。
前
return(
{isDeskopDisplay && <MyComponent/>}
)
后
return(
<Hidden mdUp>
<MyComponent/>
</Hidden>
)
推荐阅读
- php - 在 SQL 中计算年龄
- java - 通量映射中的重载?
- c# - 如何对齐 DataTemplateSelector 选择的 DataTemplate 中的文本?
- oauth-2.0 - Python 请求登录以登录亚马逊以获取亚马逊广告 API 的访问令牌
- javascript - 在 vue.js 中获取当前/父组件/视图的路径/路由/命名空间
- powershell - 安装nuget包时如何执行自定义脚本?
- arrays - 在 msoFileDialogFilePicker 之后从 SelectedItems 创建数组
- python-3.x - python -count 元素 pandas 数据框
- node.js - 无法使用通过 npm (node js) 安装的 eventbrite javascript sdk
- python - 从另一个更新数据框不起作用