我有这个函数组件用于将跨度呈现为条形。当我渲染组件时,我将道具传递scrolled
为false
. true
然后,当我滚动 150 像素时,jQuery 将属性更新为。我知道使用 jQuery 不是一个好习惯,我正在从中迁移。现在,我想让它工作,因为我还在学习功能组件。
export default function Button(props) {
const [scrolled, setScrolled] = useState( props.scrolled );
useEffect(() => {
setScrolled(props.scrolled);
}, [scrolled]);
return (
<HamburgerButton scrolled={scrolled}>
<p>{scrolled}</p>
<span></span>
</HamburgerButton>
);
}
这个样式化的组件定义:
const HamburgerButton = styled.div`
...
span {
background: ${props => props.scrolled === 'false' ? props.theme.white : props.theme.black};
}
...
`;
当我滚动时,我看到scrolled
DOM 中的属性已从“假”变为“真”,但跨度保持白色。此外,带有的段落标签{scrolled}
不会从false
.