Попробуйте вместо этого:
...
.then(data => {
this.setState({
loading: false,
char: [...this.state.char, ...data]
})
})
...
Обновление ответа, чтобы соответствовать всем вашим свойствам из вашего ответа.Я предполагаю, что this.state.char
должен содержать только данные из result.data
//Notice that I changed the parameter name to result
.then(result => {
this.setState({
loading: false,
char: [...this.state.char, ...result.data],
page: result.page,
per_page: result.per_page,
total: result.total,
total_pages: result.total_pages
})
})
В качестве альтернативы вы можете просто развернуть весь объект:
.then(result => {
this.setState({
loading: false,
...result
})
})
Но тогда ваш массив не будет сохранен вthis.state.char
а точнее this.state.data
Для получения дополнительной информации об операторе спреда ...
вы можете посмотреть здесь .
TLDR;По сути, он берет любой объект или массив {name: "Dennis", age: 29}
, раскрывает его и объединяет с любым объектом, в который вы распространяете его «в»:
const myObj = { ...{ name: "Dennis", age: 29"}, email: "myemail@example.com" }
=
const myObj = { name: "Dennis", age: 29, email: "myemail@example.com" }