Jestem nowy w React. Utknąłem na tym, naprawdę doceniam jakąś pomoc!Stan nie aktualizuje się podczas odbierania nowych rekwizytów (ReactJS)
Element macierzysty przekaże tablicę do tego komponentu potomnego. Kiedy I console.log (this.props.repairs) pokazuje mi tablicę 4. Próbuję zaktualizować this.state.sortedDataList, gdy tablica napraw jest przekazywana. Konsola.log (this.state) jest nadal pokazując sortedDataList jako pustą tablicę.
Co robię źle? Wielkie dzięki, doceń każdą pomoc.
class Repairs extends React.Component {
constructor(props) {
super(props);
this.state = {
sortedDataList: []
};
}
componentWillReceiveProps(nextProps) {
if(this.props != nextProps) {
this.setState({
sortedDataList: this.props.repairs
});
}
}
render() {
console.log(this.props);
console.log(this.state);
return (
<div></div>
);
}
}
Odpowiedzi z Jayce444 i Shubham są poprawne. Dodam, że powinieneś naprawdę zdecydować, czy potrzebujesz stanu, aby reprezentować to, co chcesz pokazać na stronie, czy możesz ściśle używać rekwizytów. Posiadanie "czystych" komponentów funkcjonalnych reagentów (komponentów, które renderują tylko w oparciu o rekwizyty) jest zawsze dobrym celem. –
Dlaczego ustawiasz podpórki do stwierdzenia? co dobrego dla ciebie robi? masz teraz cień tych samych danych przechowywanych w stanie, jak i rekwizytach. Aby dodać do tego rekwizyty są uważane za niezmienne znaczenie, których nie należy i nie powinno się zmieniać. ustawienie rekwizytów do takiego stanu powoduje, że twoje niezmienne dane są teraz zmienne, co jest wzorem Anti-Pattern i jest dużym nie, nie. Przeczytaj to, aby dowiedzieć się więcej http://stackoverflow.com/a/28785276/2733506 –