Node.js 映射警告时响应唯一键
我还没有反应过来,我面临着一个无法解决的问题。以下是我的react组件:Node.js 映射警告时响应唯一键,node.js,reactjs,key,mapping,ejs,Node.js,Reactjs,Key,Mapping,Ejs,我还没有反应过来,我面临着一个无法解决的问题。以下是我的react组件: import React from 'react'; import Header from './Header'; import ContestPreview from './ContestPreview'; class App extends React.Component { state = { pageHeader: 'Naming Contests', whatever
import React from 'react';
import Header from './Header';
import ContestPreview from './ContestPreview';
class App extends React.Component {
state = {
pageHeader: 'Naming Contests',
whatever: 'test'
};
render() {
return (
<div className="App">
<Header message={this.state.pageHeader} />
<div>
{this.props.contests.map(contest =>
<ContestPreview key={contest.id} {...contest} />
)}
</div>
</div>
);
}
}
export default App;
在我看来,它应该是有效的,我不明白为什么我仍然得到这个错误。我真的很想在我的问题上得到一些帮助,如果有人能告诉我这里发生了什么,那将是非常酷的,因为我真的试图理解它是如何工作的
谢谢你的帮助!:) 在您的代码中
<div className="App">
<Header message={this.state.pageHeader} />
<div>
{this.props.contests.map(contest => {
console.log('contest id =', contest.id);
return (<ContestPreview key={contest.id} {...contest} />);
})}
</div>
</div>
{this.props.contestics.map(contest=>{
console.log('contest id=',contest.id);
返回();
})}
这将控制要在地图中渲染的每个组件的id(键)。我认为由于某种原因,在对象数组中有一个具有相同键的对象
当您看到console.log()结果时,使用这种方法。您将知道对象中哪里有错误
我希望这能帮助您调试错误。在您的代码中
<div className="App">
<Header message={this.state.pageHeader} />
<div>
{this.props.contests.map(contest => {
console.log('contest id =', contest.id);
return (<ContestPreview key={contest.id} {...contest} />);
})}
</div>
</div>
{this.props.contestics.map(contest=>{
console.log('contest id=',contest.id);
返回();
})}
这将控制要在地图中渲染的每个组件的id(键)。我认为由于某种原因,在对象数组中有一个具有相同键的对象
当您看到console.log()结果时,使用这种方法。您将知道对象中哪里有错误
我希望这能帮助您调试错误。将包装器放入每个对象属性的呈现中
<div>
{this.props.contests.map(contest =>
<div key={contest.id}>
<ContestPreview {...contest} />
</div>
)}
</div>
{this.props.contestics.map(contest=>
)}
将包装器放入每个对象属性的呈现中
<div>
{this.props.contests.map(contest =>
<div key={contest.id}>
<ContestPreview {...contest} />
</div>
)}
</div>
{this.props.contestics.map(contest=>
)}
我可以想出两种解决方法
第一种方法是将密钥添加到周围的div中,而不是直接添加到ContestPreview
元素中
<div>
{this.props.contests.map(contest =>
<div key={contest.id}><ContestPreview {...contest} /></div>
)}
</div>
我可以想出两个解决办法 第一种方法是将密钥添加到周围的div中,而不是直接添加到
ContestPreview
元素中
<div>
{this.props.contests.map(contest =>
<div key={contest.id}><ContestPreview {...contest} /></div>
)}
</div>
你能检查一下数据在任何时间点是否变得未定义或为空吗?有任何答案可以帮助你解决问题吗?@spencer.sm没有,但我自己解决了。我重新启动了整个服务器,还是一样。所以我有点生气,决定关掉电脑一个小时。重启后,它工作得非常好。不知道是什么,认为有些东西没有正确地处理。你能检查一下数据在任何时候是否变得未定义或为空吗?有任何答案可以帮助你解决问题吗?@spencer.sm没有,但我自己解决了。我重新启动了整个服务器,还是一样。所以我有点生气,决定关掉电脑一个小时。重启后,它工作得非常好。不知道那是什么,我觉得有些东西没做对。