Javascript 如何在React中动态更改身体背景色?
我想改变一些页面中正文的背景颜色。 我必须设置的颜色是商店里的红色。但当他传入componentDidMount()函数时,他似乎并不知道这一点 我的代码:Javascript 如何在React中动态更改身体背景色?,javascript,css,reactjs,react-redux,Javascript,Css,Reactjs,React Redux,我想改变一些页面中正文的背景颜色。 我必须设置的颜色是商店里的红色。但当他传入componentDidMount()函数时,他似乎并不知道这一点 我的代码: componentDidMount() { this.props.list(this.props.match.params.page && decodeURIComponent(this.props.match.params.page)); this.props.list_admin(); docum
componentDidMount() {
this.props.list(this.props.match.params.page && decodeURIComponent(this.props.match.params.page));
this.props.list_admin();
document.body.style.backgroundColor = this.props.data_admin.backgroundColorFirst;
}
componentWillUnmount() {
this.props.reset();
document.body.style.backgroundColor = null;
}
const mapStateToProps = (state) => {
return {
data_admin: state.admin.list.data,
};
};
const mapDispatchToProps = (dispatch) => {
return {
list_admin: (admin) => dispatch(list_admin(admin)),
reset: () => {
dispatch(reset());
dispatch(success(null));
},
};
};
export default connect(mapStateToProps, mapDispatchToProps)(List);
那么,当在道具“数据管理”中设置颜色时,是否可以在身体上应用样式
感谢您的帮助您当前的解决方案,无论是否重新加载,只会在初始装载和卸载时更改背景,而不会在
道具
更改时更改背景
生命周期功能是执行您的任务的一个很好的候选者
document.body.style.backgroundColor = this.props.data_admin.backgroundColorFirst;
同样。您的代码似乎是正确的,您可能面临的唯一问题是,此时将安装组件。this.props.data\u admin.backgroundColorFirst为空。因此,请先放置一个记录器并检查this.props.data_admin.backgroundColor的值。如果它在安装后发生了变化,并且您想要一个动态行为,那么您可以研究componentWillReceiveProps方法。我希望这会有帮助。你好@AKX,它工作得很好,谢谢!我必须添加一个if条件,因为componentDidUpdate()是在数据_admin prop水合之前调用的。对于那些想做同样事情的人,不要忘记添加document.body.style.backgroundColor=null;在componentWillUnmount()函数中