Как динамически изменить цвет фона тела в React? - PullRequest
0 голосов
/ 26 апреля 2019

Я хотел бы изменить backgroundColor тела на некоторых страницах.Цвет, который я должен установить, находится в запасе.Но, похоже, он не знает об этом, когда передает функцию 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 Ответ

1 голос
/ 26 апреля 2019

Ваше текущее решение, Redux или нет, изменяет фон только при первоначальном монтировании и размонтировании, но не при изменении props.

Хорошим кандидатом является функция жизненного цикла componentDidUpdate().чтобы делать ваши

document.body.style.backgroundColor = this.props.data_admin.backgroundColorFirst;

.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...