Доброго времени суток!
Мне было необходимо, чтобы счетчик изменял значение состояния не через один раз, а постоянно, ведь известно, что setState() действует асинхронно.
Для этого я помещаю пустую функцию, чтобы он обновлялся сразу. Использую такого вида запись:
this.setState({ text: this.state.text.slice(0, -1)}, () => {})
Нашел еще один способ:
this.setState(function(state, props) {
return {
text: this.state.text.slice(0, -1)
}});
или через функцию
// outside your component class
function increaseScore (state, props) {
return {score : state.score + 1}
}
class User{
…
// inside your component class
handleIncreaseScore () {
this.setState( increaseScore)
}
…
}
Но хотелось бы не городить каждый раз функции, и я подумал, что возможно есть способ сделать это через componentWillReceiveProps() и shouldComponentUpdate().
Вопрос: как правильно принудительно обновить состояния класса? И можно ли сделать это через методы жизненного цикла?