Валидация входящих пропсов FC, useState

Hужно сделать правильную валидацию входящих пропсов. Со строкой id нет никаких проблем. А вот setList - функция хука useState, которaя должна принимать массив таких обьектов -

interface ZapisiI {  
  _id: string; 
  field1?: string;
  field2?: string;
  field3?: string;
  date?: string;
}

Я перепробовал много всяких вариантов и не представляю как реализовать проверку этой сущности по правильному. У меня выскакивают 2 такие ошибки в строке с setList(zapisi);:

  1. This expression is not callable. ts(2349)
  2. Type 'AppointmentI[]' has no call signatures. А сами компоненты выглядят так:

    Zapisi.tsx
const Zapisi = () => {
  const [list, setList] = useState < ZapisiI > [];
  const fetchData = async () => {
    const zapisi= await store.getZapisi();
    setList(zapisi);
  };

  useEffect(() => {
    fetchData();
  }, []);

return (
    <ModalEdit setList={setList} id={id} />
  )
}

ModalEdit.tsx

interface ModalEditI {
  id: string;
  setList: AppointmentI[];
}

const ModalEdit: FC<ModalEditI> = ({ id, setList }) => {
..... в предыдущем компоненте переменная "list" содержит старый массив записей
    setList(zapisi); // zapisi массив объектов таких как обозначено выше
.... а теперь предыдущий компонент содержит переменную "list" с новым массивом записей
}

ModalEdit.propTypes={
  []: {AppointmentI}[]
}

export default observer(ModalEdit);

Какие нибудь мысли как это решить?
Спасибо.


Ответы (1 шт):

Автор решения: Digglers Morsovich

const [list, setList] = useState <Array< ZapisiI >>([]);

→ Ссылка