当您尝试将 react 元素作为唯一参数传递给 React.DOM.li 时,代码无法编译,而它首先需要一个选项对象,然后是一个子对象。
@Statement = React.createClass
render: ->
React.DOM.li {},
React.DOM.div
className: 'statement'
@props.statement.body
您需要将空哈希传递给li 元素。你可以传递 null 而不是 {},它们都会被 React 当作一个空的 options / attr 对象。
此外,您可以使用来自 coffeescript 的解构赋值来使反应代码看起来更干净:
{li, div} = React.DOM
@Statement = React.createClass
render: ->
li {},
div
className: 'statement'
@props.statement.body
在没有 JSX 的情况下使用 coffeescript 和 React 的少数小组之一是 Arkency,请查看 their resources 了解更多提示。
编辑:关于您的评论:
这可能是缩进的情况——Coffeescript 在函数或块中隐式返回最后一个表达式的结果。
如果您想渲染嵌套在第一个跨度中的第二个跨度:
render: ->
React.DOM.span null,
'123'
React.DOM.span null,
'sdfdfg'
如果您希望将两者渲染为兄弟元素,则需要将它们包装在父元素中,因为您只能从 React 的渲染方法返回一个组件:
render: ->
React.DOM.div null,
React.DOM.span null,
'123'
React.DOM.span null,
'sdfdfg'