(1. Предпосылки
Арендодатель только что использовал реакцию в недавнем развитии бизнеса и обнаружил, что метод setstate в реакции выполняется асинхронно, так как же мы можем заставить наш код использовать значение после setState?В этой статье будет представлен план сбора арендодателя.
(2) Конкретные решения
//1.设置代码
this.setState({
myState: 'doubi'
}, function() {
// stateFunction是需要立即用到
this.stateFunction()
})
//2.在函数中直接调用
stateFunction() {
console.log('doubi', this.state.myState)
}
Второй параметр в методе setState React будет возвращать функцию, поэтому нам не нужно писать функцию возврата, конечно, вы можете написать:
this.setState({
myState: 'doubi'
},() => {
console.log(111);
})
(3) Обратите внимание на проблему
1. Функция stateFunction(), вызываемая в setState, не будет выполняться немедленно, а функция будет выполняться при ее вызове.
// То есть функция в setState объявлена доступной только немедленно, а не немедленно выполнена.
2. При наличии входящих параметров в функцию stateFunction() функция также требуется при установке setState.