React中ReactDOM.render参数语法错误

新学JSX,React 不太懂。。求指教

let names = ['Python', 'Java', 'C++', 'Javascript', 'C'];      
        ReactDOM.render(
            <div>
                {   //为什么这里报错 " }expected" 呢
                    
                    for(let name of names){
                        +function (){
                             return <h1>{name}</h1>;
                          }();
                    }
                   
                }
            </div>,
            document.getElementById('example')
        );
阅读 5.2k
2 个回答

{ } 是 jsx 中的模版插值语法。里面不管是写变量、表达式还是函数,都要确保有返回值。

for有返回值吗?

一般是用 map 遍历数据:

<div>
    {arr.map(item => {
        return <h1>{item}</h1>
    })}
</div>

你得for...of语句没有返回值,按你的思路,可以将for...of放入立即执行函数并返回回去,如示例。

<div>
    {
        (function () {
            var arr = []
            for(let name of names){
                 arr.push(<h1>{name}</h1>)
            }
            return arr
        })()
    }
</div>

但React中一般遍历对象使用对象的keys()接口,配合使用数组中的map()reduce()等具有返回值的接口。

Object.keys(obj).map( key => obj[key] )
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题