#reactjs #typescript #state
Вопрос:
Я новичок в машинописи и пытаюсь вставить новый объект в массив в состоянии реакции, но получаю следующую ошибку:
Type '{ name: string; address: string; }[] | null' is not an array type.ts(2461) const info: { name: string; address: string; }[] | null
вот код:
interface StateProps { info: { name: string; address: string; }[]; } function App() { const [info, setInfo] = useStatelt;StateProps["info"] | nullgt;(null); const nameHanlder = () =gt; { //the editor highlight ...info as an error setInfo([...info, { name: "foo", address: "bar" }]); }; return ( lt;div className="App"gt; lt;pgt;lt;/pgt; lt;button onClick={nameHanlder}gt;add namelt;/buttongt; lt;/divgt; ); }
Ответ №1:
info
также может быть null
, поэтому вы получаете сообщение об ошибке. Вы могли бы проверить, что info
это массив.
const nameHanlder = () =gt; { if (Array.isArray(info)) { setInfo([...info, { name: 'foo', address: 'bar' }]) } }