反应中的循环隐藏了其他元素



我在渲染函数中有这个:(咖啡脚本)

unless @state.loaded
  React.createElement('h1', {}, 'Loading')
else
  React.createElement('h1', {}, 'Blog')
  for year in @blogYears()
    React.createElement(BlogYear, {year: year, content: @state.content, key: year})

h1根本没有渲染,但是如果我注释掉循环,它会渲染h1.我在反应开发工具中没有看到任何h1的迹象。

为什么会这样?

只会返回最后一个执行的语句,在您的情况下,这是 for 循环的结果。

解决方案:将 h1 和循环包装在一个div 中。

提示:您可以编写更多类似 Coffeescript 的代码(未经测试):

React.DOM.div {},
  React.DOM.h1 {}, 'Blog'
  @blogYears.map (year) ->
    React.createElement BlogYear,
      year: year
      content: @state.content
      key: year

相关内容

最新更新