未捕获的TypeError:无法分配为仅读取对象'#<object>'

时间:2019-01-29 02:29:29

标签: javascript reactjs

我的项目是babel7。

render() {
  const {elementStyle, style } = this.props;
  return (
            <span style={Object.assign(elementStyle, style)}>{label} 
            </span>
        )
}

// Object.assign(elementStyle,style)->错误。 但我正确的Object.assign({},elementStyle,style)正在工作。 和为什么不起作用?  我调试了此代码。起初是可以使用的,但是当重新输入代码时,此代码是错误的... 我不知道,请帮助我。

1 个答案:

答案 0 :(得分:0)

Object.assign的第一个参数是其他参数将合并到的目标,但是该第一个参数被变异并由函数返回。

  

Object.assign()方法用于将所有可枚举的自身属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。

elementStyle似乎是只读的,因此无法进行突变。如您所述,传递空对象可修复错误,因为它会突变新创建的空对象,并将elementStylestyle与之合并,同时保留elementStyle和{{1} }。

希望这有助于澄清。您可以阅读有关Object.assign on MDN的更多信息。