ReactJS - klucze
Reagować keyssą przydatne podczas pracy z komponentami tworzonymi dynamicznie lub gdy listy są zmieniane przez użytkowników. Ustawianiekey value pozwoli zachować unikalną identyfikację komponentów po zmianie.
Korzystanie z kluczy
Twórzmy dynamicznie Contentelementy z unikalnym indeksem (i). Plikmap funkcja stworzy trzy elementy z naszego dataszyk. Ponieważkey wartość musi być unikalna dla każdego elementu, przypiszemy i jako klucz do każdego utworzonego elementu.
App.jsx
import React from 'react';
class App extends React.Component {
constructor() {
super();
this.state = {
data:[
{
component: 'First...',
id: 1
},
{
component: 'Second...',
id: 2
},
{
component: 'Third...',
id: 3
}
]
}
}
render() {
return (
<div>
<div>
{this.state.data.map((dynamicComponent, i) => <Content
key = {i} componentData = {dynamicComponent}/>)}
</div>
</div>
);
}
}
class Content extends React.Component {
render() {
return (
<div>
<div>{this.props.componentData.component}</div>
<div>{this.props.componentData.id}</div>
</div>
);
}
}
export default App;
main.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App.jsx';
ReactDOM.render(<App/>, document.getElementById('app'));
Otrzymamy następujący wynik dla wartości kluczowych każdego elementu.
Jeśli w przyszłości dodamy lub usuniemy jakieś elementy lub zmienimy kolejność dynamicznie tworzonych elementów, React użyje rozszerzenia key wartości, aby śledzić każdy element.