Javascript React无限滚动条-两个具有相同键的子项。loadMore函数被调用两次

Javascript React无限滚动条-两个具有相同键的子项。loadMore函数被调用两次,javascript,reactjs,Javascript,Reactjs,我正在尝试使用react infinite scroller创建一个类似于facebook的无限滚动帖子。但是,它在控制台中多次出现相同的错误- 遇到两个具有相同密钥的子项,shdj1289。密钥应 保持唯一性,以便组件在更新过程中保持其标识。 非唯一键可能会导致复制和/或忽略子项- 该行为不受支持,可能在将来的版本中更改。” 这是渲染函数 render(){ const{loading,userData,circleData,redirectToLogin,posts}=this.state

我正在尝试使用react infinite scroller创建一个类似于facebook的无限滚动帖子。但是,它在控制台中多次出现相同的错误-

遇到两个具有相同密钥的子项,
shdj1289
。密钥应 保持唯一性,以便组件在更新过程中保持其标识。 非唯一键可能会导致复制和/或忽略子项- 该行为不受支持,可能在将来的版本中更改。”

这是渲染函数

render(){
const{loading,userData,circleData,redirectToLogin,posts}=this.state;
返回重定向到登录?:(
你好{userData.firstName}
{posts.map(p=>{
返回();
})}
)

}
这是一个迟来的回复,但希望能帮助其他人解决同样的问题。在实现类似的包时,我遇到了重复数据加载的类似问题。经过一些研究和调试后,对我有用的是记住
setState
是异步的,可能正在批处理状态更改。尝试更改
setState
的形式以接受函数而不是对象(React):


希望这能帮助一些人

它看起来像一个无限卷轴库的bug。我有几乎相同的情况,当加载更多结果的回调函数调用几次而不是一次时
//in your fetch call
this.setState((previousState) => ({ start: previousState.start + 1, posts: previousState.posts.concat(res.data)}));