我收到以下錯誤:如何防止突出顯示div中的樣式對象?
Warning:
div
was passed a style object that has previously been mutated. Mutatingstyle
is deprecated. Consider cloning it beforehand. Check therender
ofTab
. Previous style:{padding: "20px", display: "block"}
. Mutated style:{padding: "20px", display: "none"}
.
從這個代碼在我render()
方法反應,和/ JSX:
const clonedChildren = React.Children.map(this.props.children, (el, i) => {
let visibility = 'none';
if (i === this.state.activeIndex) visibility = 'block';
const newStyle = { display: visibility };
const style = Object.assign(el.props.style, newStyle);
return React.cloneElement(el, { style });
});
爲什麼這個錯誤發生?我已經克隆了這個元素。我怎樣才能解決這個問題?
您忘記了第一個參數爲空的對象:'Object.assign({},el.props.style,newStyle);' –