javascript - 移除 componentDidMount 上的 backgroundImage

标签 javascript css reactjs

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

登录页面背景为#222 , 当您登录时,仪表板的背景为 whitesmoke

我这样做的方式是在 body css 上添加这个:

body {
    background-color: #222222;
}

这在 Dashboard.js 中:

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

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

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;
}

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

最佳答案

为什么不使用类呢?


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

此外,您可能希望抽象那些 addClass/removeClass 并使用 emits .

关于javascript - 移除 componentDidMount 上的 backgroundImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40789453/

相关文章:

html - 在 2 个固定 DIV 之间滚动一个 div,位置 : does not work for me

reactjs - Normalizr + Redux - 更新单个实体的属性

javascript - ReactJS:为收集方法调用重新设置帮助文件管理器

javascript - 如何将计算状态添加到 React Apollo 中的图形对象?

javascript - 将变量传递给 addEventListener 函数

css - Chevron Down 图标未显示在语义下拉列表中

javascript - Socket.io和express.js,如何使其工作?

不同客户端窗口大小的 HTML 表格大小

javascript - JS 以字符串形式发送一些数字并获取其他数字,为什么?

javascript - 如何以动态形式迭代每个选择元素