我收到以下错误:
警告:
div
传递了之前的样式对象 突变。不推荐使用变异style
。考虑克隆它 预先。查看render
的{{1}}。上一个样式:Tab
。变异风格:{padding: "20px", display: "block"}
。
在React / JSX的{padding: "20px", display:
"none"}
方法中使用此代码:
render()
为什么会发生这种错误?我已经克隆了元素。我该如何解决这个问题?
答案 0 :(得分:5)
不要改变你的el.props.style
。目前,您正在使用Object.assign
并通过将其用作目标对象来变异el.props.style
。相反,使用Object.assign
并使用新对象作为目标:
const style = Object.assign({}, el.props.style, newStyle);
这不会改变el.props.style
。它会改变新对象{}
。在MDN处Object.assign
进一步阅读。