React新手的实验:
React.renderComponent(
<MyComponent item={name: "A Name", description: "---"} />,
document.getElementById('container')
);
控制台错误:
JSX value should be either an expression or a quoted JSX text
似乎没有这样的工作。我已经挖了React文档一段时间但没有骰子。
答案 0 :(得分:20)
您没有正确传递item
的值。 foo={...}
表示JSX中的表达式,即prop值应该被评估为JavaScript。然后,您缺少对象文字的{...}
。它应该是
<MyComponent item={{name: "A Name", description: "---"}} />
// ^--- object literal ---^
// ^----- expression -----^
或者,如果您没有发现该语法非常易读,您可以先将对象分配给变量:
var item = {name: "A Name", description: "---"};
// ...
<MyComponent item={item} />
请参阅https://facebook.github.io/react/docs/jsx-in-depth.html#attribute-expressions
答案 1 :(得分:0)
或者,如果您希望MyComponent
内部this.props.name
和this.props.description
代替this.props.item.name
和this.props.item.description
,则可以使用以下语法:
var item = {name: "A Name", description: "---"};
<MyComponent {...item} />