olegpavlov897
@olegpavlov897
Люблю писать и видеть как оно заработало )))

Как добавить в setState (react-typescript hooks) массив?

type CardAutoNowType = {
id: number,
title: string,
volume: string,
pack: string,
fuel: string,
release: string,
kpp: string,
price: string,
availability: number,
img?: string,
img_1?: string | undefined
img_2?: string | undefined
img_3?: string | undefined
img_4?: string | undefined
model: string
}

Есть const [arrResult, setArrResult] = useState<[]>([])

Пытаюсь засунуть массив обьектов

let model: CardAutoNowType[] = []
model = arrCard.filter((elem: { model: string }) => elem.model === elemModel)
setArrResult(...arrResult, model)

Выводит ошибку :

Аргумент типа "CardAutoNowType[]" нельзя назначить параметру типа "SetStateAction<[]>".
Тип "CardAutoNowType[]" не может быть назначен для типа "(prevState: []) => []".
Тип "CardAutoNowType[]" не предоставляет соответствия для сигнатуры "(prevState: []): []".
  • Вопрос задан
  • 279 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ArgeoMer
Вы useState типизировали под пустой массив.
Правильно:
const [arrResult, setArrResult] = useState<CardAutoNowType[]>([])

Тип CardAutoNowType[] предполагает наличие либо пустого массива либо массива только с элементами типа CardAutoNowType
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы