Как в setState присвоить массиву другой массив?
Мне нужно массиву list в state присвоить значение равное массиву result. А получается почему-то пустой массив.
import React, {Component} from 'react';
class Modal extends Component{
constructor(props){
super(props);
this.state={
list: []
}
}
componentDidMount(){
this.loagPageList();
}
loadPageList() {
let result = ["1", "second"]
this.setState({
list: result
})
console.log("this.state.list: ");
console.log(this.state.list); //выдаёт пустой массив с length = 0
}
render(){
return(
<div>1</div>
)
}
}
Ответы (1 шт):
Автор решения: Андрей Солуянов
→ Ссылка
Все работает, просто ты не там console.log написал.Вставь в render() например, и увидишь что все меняется как ты хочешь.
render(){
console.log("this.state.list: ");
console.log(this.state.list); //выдаёт пустой массив с length = 0
return(
<div>1</div>
)
С чем связанно такое поведение?,если посмотреть в документацию то
setState(updater, [callback])
связанна с callback,соответственно когда ты требуешь результат в loadPageList() сразу, после setState.
Получается что setState еще не отработал,а console.log выводит прежний результат.Как то так, если я тоже правильно понял.