如何防止在div中改变样式对象?

时间:2017-05-25 21:26:58

标签: javascript reactjs ecmascript-6 react-jsx

我收到以下错误:

  

警告:div传递了之前的样式对象   突变。不推荐使用变异style。考虑克隆它   预先。查看render的{​​{1}}。上一个样式:Tab。变异风格:{padding: "20px", display: "block"}

在React / JSX的{padding: "20px", display: "none"}方法中使用此代码:

render()

为什么会发生这种错误?我已经克隆了元素。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:5)

不要改变你的el.props.style。目前,您正在使用Object.assign并通过将其用作目标对象来变异el.props.style。相反,使用Object.assign并使用新对象作为目标:

const style = Object.assign({}, el.props.style, newStyle);

这不会改变el.props.style。它会改变新对象{}。在MDNObject.assign进一步阅读。