Укажите, как установить начальное длинное значение

#javascript #reactjs #typescript #use-state

Вопрос:

Существует очень большое состояние, которое я получаю из json, состоящее по крайней мере из 50 строк.

При создании страницы она выдает ошибку «такого значения нет», если вы изначально не задали значение и не назначили интерфейс

 const [dataPosibleValue, setDataPosibleValue]:[IStatPokemon,Dispatch<SetStateAction<IStatPokemon>>] = useState('')
 

Можно ли не устанавливать значение в начале, чтобы во время генерации не возникало ошибок?

Комментарии:

1. «не устанавливать значение» означает установку значения на undefined , что приведет к той же ошибке. Я не специалист по машинописи, но я думаю, что вам нужно сделать, это установить тип dataPosibleValue на IStatPokemon|undefined .

2. Кстати, обратите внимание, что вы также можете ввести его по const [dataPosibleValue, setDataPosibleValue] = useState<IStatPokemon>() . Это немного более лаконично, и тогда нет необходимости вводить сеттер явно.

3. Может useState<IStatPokemon | null>(null); быть, стоит сделать трюк?

Ответ №1:

Вы можете установить его только в том случае, если он у вас есть. Если он у вас есть, вы можете установить его, передав в функцию следующим образом:

 const [dataPosibleValue, setDataPosibleValue]:[IStatPokemon,Dispatch<SetStateAction>] 
  = useState('your initial long value')
 

Комментарии:

1. о боже, иначе никак нельзя?

2. Вероятно, вы получаете доступ к пустому значению, поэтому добавьте условие if, чтобы проверить, есть ли у вас значение, или изначально установите значение.