Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在React中呈现动态列表_Javascript_Reactjs_Jsx - Fatal编程技术网

Javascript 在React中呈现动态列表

Javascript 在React中呈现动态列表,javascript,reactjs,jsx,Javascript,Reactjs,Jsx,我的redux商店里有一系列书籍 我的reactjs组件像这样迭代(books.map=>(book=>{…renderbook}))来渲染这本书 到目前为止还不错 现在,当一个新元素被添加到图书中时,整个列表将被重新呈现。有没有办法避免这种情况?我相信“ListView”在React Native中也有类似的功能。React JS中是否有一个等价物 您需要为每本书指定键属性: books.map(book => <Book key={book.id} />); books.

我的redux商店里有一系列
书籍

我的reactjs组件像这样迭代
(books.map=>(book=>{…renderbook}))
来渲染这本书

到目前为止还不错


现在,当一个新元素被添加到
图书中时,整个列表将被重新呈现。有没有办法避免这种情况?我相信“ListView”在React Native中也有类似的功能。React JS中是否有一个等价物

您需要为每本书指定键属性:

books.map(book => <Book key={book.id} />);
books.map(book=>);
如果ID为的书籍没有更改,它们将不会重新呈现

有关这方面的详细信息,请参阅:

键有助于识别哪些项已更改、已添加或已删除。应为数组中的元素提供键,以使元素具有稳定的标识


这里还有更多信息:

当然
books.map(book=>)
。使用keys@Aditya您的编辑实际上与文档背道而驰:
如果项目的顺序可能发生变化,我们不建议对键使用索引。这可能会对性能产生负面影响,并可能导致组件状态出现问题。
Ohh!我不知道。谢谢你的解释,有道理。如果没有唯一标识符怎么办?那么您应该附加一个,或者根据对象中的唯一元素创建一个(如
book.title+book.description