删除componentDidMount

时间:2016-11-24 14:56:07

标签: javascript css reactjs

我目前有一个<Login/>页面和一个<Dashboard/>

登录页面的背景为#222,登录时,信息中心的背景为whitesmoke

我这样做的方法是在身体上进行css:

body {
    background-color: #222222;
}

并在Dashboard.js

componentWillMount() {
  document.body.style.backgroundColor = "whitesmoke";
}
componentWillUnmount() {
    document.body.style.backgroundColor = null;
}

到目前为止,这是有效的。但是我现在在登录页面上有一个Image作为我的背景,如下所示:

body {
    background-color: #222222;
    background: url('../../public/img/bg.png');
    background-repeat: repeat;
}

但是我的仪表板继承了背景图像,即使我放了这样的东西:

componentWillMount() {
  document.body.style.backgroundImage = null;
  document.body.style.backgroundColor = "whitesmoke";
}
componentWillUnmount() {
  document.body.style.backgroundColor = null;
}

我如何解决这个问题? 感谢

1 个答案:

答案 0 :(得分:1)

为什么不使用类呢?

componentWillMount() {
  $('body').addClass('has-background');
}
componentWillUnmount() {
  $('body').removeClass('has-background');
}

此外,您可能需要抽象addClass / removeClass并使用emits