Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在React中动态更改身体背景色?_Javascript_Css_Reactjs_React Redux - Fatal编程技术网

Javascript 如何在React中动态更改身体背景色?

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()函数时,他似乎并不知道这一点

我的代码:

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()函数中