'Свойство' XX 'не существует для типа' useState - PullRequest
1 голос
/ 25 марта 2020

У меня есть вызов API, который возвращает ответ, который я добавляю в состояние с помощью setInfo:

const [info, setInfo] = useState([])

axios.post('/user', {
  data: 'data'
})
.then(response => {
  setInfo(response.data);
})
.catch(error => {
  console.log(error);
});

Когда я уничтожаю ответ, я получаю следующее предупреждение из Typescript:

const { propertyOne } = info
Property 'propertyOne' does not exist on type 'any[]'.

Добавление свойства или «информации» в интерфейс не решает эту проблему, я не уверен, что мне нужно делать здесь?

Ответы [ 2 ]

1 голос
/ 25 марта 2020

Вам необходимо определить тип для информационного состояния, попробуйте это

type InfoType = {
   propertyOne: any;
}
const [info, setInfo] = useState<InfoType[]>([]);
const { propertyOne } = info[0];
0 голосов
/ 25 марта 2020

Исправить

Изменить:

const [info, setInfo] = useState([])

На что-то, что имеет propertyInfo, например:

 const [info, setInfo] = useState<{propertyOne: any}({propertyOne: null});
...