Javascript 在React中呈现动态列表
我的redux商店里有一系列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.
书籍
我的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
)