我必须在render函数中创建一个对象数组。我需要分配 数组中对象的属性,表示渲染函数内的值。
var ref = [{"a":"x","b":"y"];//This is coming through a prop called ref.
var someArrayOfObject = [{t1:{ref.a}},{t1:{ref.b}}];
我正在使用webpack和babel。我收到错误"意外的令牌"。错误日志指向'。'在ref和属性之间,例如ref.a。
当我将{ref.a}分配给组件的支柱
时,我没有收到错误消息 <SomeComponent someProp={ref.a} />
答案 0 :(得分:1)
为什么要将ref.a
放在{}
内?您实际上是在尝试创建一个没有键值的对象。这是修复:
var ref = [{"a":"x","b":"y"];
var someArrayOfObject = [{t1:ref.a},{t1:ref.b}];
答案 1 :(得分:0)
我认为这里的混淆来自于嵌入Javascript表达式的JSX语法。如果要在JSX代码中使用文字JS表达式,则需要将其包装在圆括号中(例如{ref.a}
)。
您也尝试在对象文字中使用此语法。
[{t1:{ref.a}},{t1:{ref.b}}];
我们只在JSX中执行此操作,以表明我们正在使用Javascript值转义标记。在普通代码中没有必要这样做。你可以安全地删除parens。
[{t1:ref.a},{t1:ref.b}];
还值得一提的是ref
是一个数组而不是一个对象,你需要先引用数组中的第一个元素。
var someArrayOfObject = [{t1:ref[0].a},{t1:ref[0].b}];
<SomeComponent someProp={ref[0].a} />