【发布时间】:2021-07-31 07:16:08
【问题描述】:
const [bgColor, setBgColor] = useState('black');
class Accelerons extends Component {
constructor(props) {
super(props);
}
componentDidMount = () => {
$(window).on('scroll touchmove', function () {
if ($(document).scrollTop() >= $('.about-us').position().top) {
setBgColor('red');
}
});
};
render() {
return (
<article
style={{
backgroundColor: bgColor,
}}
>
<Overlay />
<Landing landing={DataAccelerons.landing} />
<AboutUs itemColor={itemColor} accelerons={DataAccelerons} />
<Participation itemColor={itemColor} accelerons={DataAccelerons} />
<TeamMembers itemColor={itemColor} accelerons={DataAccelerons} />
<Results itemColor={itemColor} accelerons={DataAccelerons} />
<Footer
accentColor={DataAccelerons.accentColor}
footerColors={DataAccelerons.footerColors}
/>
</article>
);
}
}
export default Accelerons;
这给了我一个错误,我们不能在开始时使用反应钩子,但是如果我在渲染中声明它们,它将不会被 ComponentDidMount 函数 ReactJS 识别
【问题讨论】:
-
只能在函数组件内部使用钩子,在类组件中需要使用
this.setStatereactjs.org/docs/react-component.html#setstate
标签: javascript jquery reactjs web