我有一個React應用程序,它具有打開文件的選項卡式界面。打開的文件陣列看起來是這樣的:通過鍵更新React組件
[
{ name: 'file1', path: '/path/to/file1', fileContents: '...' },
{ name: 'file2', path: '/path/to/file2', fileContents: '...' },
{ ... }
]
哪些是渲染成<div>
就像這樣:
render() {
return this.state.files.map((file, i) => {
return <div key={`tab--${file.path}`}> ... </div>;
});
}
當我的應用程序將該文件重命名,它重新呈現整個選項卡(因爲key
由於路徑更新,prop現在是不同的,React認爲它是一個完全不同的組件,並且處理了前一個元素)。
當重命名「文件2」到「文件3」,我想我的應用程序更新從tab--/path/to/file2
的key
到tab--/path/to/file3
無需重新呈現組件在所有 - 所以才更新組件的key
道具。
有什麼方法可以通過它們的key
找到組件並隨後更新key
?
你的用例是什麼?爲什麼你在這種情況下分配鑰匙? – lustoykov