代碼不會編譯,因爲您試圖將作爲唯一參數傳遞給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
爲數不多的基團與CoffeeScript的工作,並沒有JSX陣營都Arkency,看看their resources獲取更多提示。
編輯:關於您的評論:
這可能是缺口的情況下 - CoffeeScript的隱式返回最後一個表達式的結果在一個函數或塊。
如果你想渲染嵌套在第一第二跨度:
render: ->
React.DOM.span null,
'123'
React.DOM.span null,
'sdfdfg'
如果你正在尋找呈現兩個兄弟姐妹,你將需要包裝起來的父元素,你可以只返回作出反應的方式呈現一個組件:
render: ->
React.DOM.div null,
React.DOM.span null,
'123'
React.DOM.span null,
'sdfdfg'
THX) 可能u能解釋我爲什麼在這種情況下呈現只剩下最後跨度? '渲染 - > React.DOM.span空, '123' React.DOM.span空, 「sdfdfg'' – nuT707
@ nuT707我添加了一個編輯答案關於你的評論。如果這不是正確的答案,請發佈一個新的問題,並附上正確的縮進,因爲這對於React和Coffeescript都非常重要 –