如何在React中动态更改主体背景颜色?

时间:2019-04-26 09:55:52

标签: javascript css reactjs react-redux

我想在某些页面中更改主体的backgroundColor。 我必须设置的颜色在商店redux中。但是当他传入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);

因此,当在道具“ data_admin”中设置颜色时,是否可以在主体上应用样式?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您当前的解决方案(无论是否为Redux)仅更改初始安装和卸载时的背景,而不会更改.strftime('%B')时的背景。

componentDidUpdate()生命周期功能很适合做您的

props

也是。