W React Próbuję zrobić przycisk, aby zwiększyć wartość przechowywaną w stanie. Jednak używając poniższego kodu funkcja moja wartość jest niezdefiniowana lub NaN podczas używania handleClick.Zwiększanie wartości stanu o jeden przy użyciu React
class QuestionList extends React.Component {
constructor(props) {
super(props);
this.state = {value: 0};
// This binding is necessary to make `this` work in the callback
this.handleClick = this.handleClick.bind(this);
}
handleClick = (prevState) => {
this.setState({value: prevState.value + 1});
console.log(this.state.value)
}
Czy możesz mi powiedzieć, dlaczego tak się dzieje? Powinno być poprawne, zgodnie z dokumentacją tutaj: https://facebook.github.io/react/docs/state-and-lifecycle.html
Thanks I potrzebne, aby nie używać prevState . – dwigt
@ Zauważ, że zauważyłeś, że zmieniłem twój dziennik konsoli, aby być w callbacku dla twojej funkcji setstate. ponieważ logi wbudowanej konsoli zostanie wykonane, gdy wątek trafi go po wywołaniu funkcji setstate, a nie zakończeniu aktualizacji stanu :) –