【发布时间】:2018-03-11 13:00:01
【问题描述】:
我正在查看React Boilerplate,我注意到当我将语法从 JSX 更改为常规 JS(使用 React.createElement)时,我收到了警告 Each child in an array or iterator should have a unique "key" prop。所以我猜 JSX 做了一些额外的事情。
真正的区别是什么?
是否可以在不使用 JSX 或不提供密钥的情况下修复此警告?
为了清楚起见,这是给我警告的 sn-p:
React.createElement(AppWrapper, {}, [
React.createElement(Helmet, {titleTemplate: "Boilerplate"},
React.createElement('meta', {name: "description"})
),
React.createElement(Switch, {}, [
React.createElement(Route, {exact: true, path: "/", component: HomePage}),
React.createElement(Route, {path: "/features", component: FeaturePage}),
]),
React.createElement(Footer)
])
这是没有给我任何警告的 JSX:
<AppWrapper>
<Helmet titleTemplate="Boilerplate">
<meta name="description" />
</Helmet>
<Header />
<Switch>
<Route exact path="/" component={HomePage} />
<Route path="/features" component={FeaturePage} />
</Switch>
<Footer />
</AppWrapper>
【问题讨论】:
标签: reactjs react-router jsx