【发布时间】:2022-01-01 13:58:05
【问题描述】:
我正在尝试在滚动时更改应用栏颜色。我使用 MaterialUI 风格的功能来创建我的应用栏。我检查了控制台中的状态值,它正在正确更改。不幸的是,应用栏不会对我在样式组件上传递的道具的状态变化做出反应,这应该是组件背景颜色的触发器。
这是样式化的组件代码:
const AppBar = styled(MUIAppBar)(({ theme, scrollNav }) => ({
backgroundColor: !scrollNav ? '#E6EEF4 !important' : 'red !important',
position: 'fixed',
color: '#232F3D',
paddingTop: theme.spacing(2),
paddingBottom: theme.spacing(2),
}))
这里是状态改变的触发器:
const [scrollNav, setScrollNav] = useState(false)
const changeNav = () => {
setScrollNav(window.scrollY >= 96 ? true : false)
}
useEffect(() => {
window.addEventListener('scroll', changeNav)
}, [])
这是我将状态传递给样式化组件的方式:
<AppBar position="fixed" scrollNav={scrollNav}></AppBar>
【问题讨论】:
-
嗨,我尝试使用该方法,但无法访问 Material UI 的
theme
标签: javascript reactjs material-ui navbar styled-components