使用 `...` 从现有对象创建新对象时出现错误:在这个环境中,assign 的源必须是一个对象。

15 浏览
0 Comments

使用 `...` 从现有对象创建新对象时出现错误:在这个环境中,assign 的源必须是一个对象。

在我的React Native应用中,我有这样一种情况,即我render的组件的一个特定子组件应该接收绿色或红色的borderColor

现在,我不想为这两种情况在我的styles中创建两个单独的条目,因为它们只在borderColor属性上有所不同。

我的想法是从我的styles中的现有样式对象中派生出正确的样式对象,代码如下:

const styles = StyleSheet.create({
  amountSection: {
    borderWidth: 1,
    flex: 1,
    flexDirection: 'row',
    borderRadius: 3
  }
})
render() {
  const amountBorderColor = this.state.isClaim ? 'green' : 'red'
  const amountStyles = {
    ...styles.amountSection,
    borderColor: amountBorderColor
  }
  return (
    // ... 在合适的组件上应用amountStyles
  )
}

然而,这段代码会出现以下错误:

Unhandled JS Exception: In this environment the sources for assign

MUST be an object.This error is a performance optimization and not

spec compliant.

显然,错误发生在我定义amountStyles的那一行。有人知道为什么会发生这种情况吗?我的语法有问题吗?我使用...符号从现有对象中创建一个新对象,并添加一些额外的属性。

0