Я пытаюсь обновить свой массив 'state' и вставить в него элементы типа String с помощью 'setState', но это не работает.
Я знаю, что это не работает с push ().
Я также пытался обновить мой массив 'state' с оператором распространения, но он тоже не работает.
Вот мой код:
import React, { useState } from 'react';
import _, { debounce } from 'lodash';
export default function Search() {
const [state, setState] = useState([])
const handleChange = debounce(async (value) => {
const url = `http://localhost:3100/`
if (value == '') {
return
}
let response = await fetch(url, {
headers: {
'Content-Type': 'application/json'
},
method: 'POST',
body: JSON.stringify({ value })
})
let test = await response.json()
console.log(test)
setState(state.concat(test))
// setState([...state, test]) it also doesn't work
console.log(state)
}, 1000)
return (
<>
<div>
<input onChange={e => handleChange(e.target.value)} />
</div>
</>
)
}
Массив «состояние» остается пустым. Мне нужно понять почему, пожалуйста.