Ошибка при использовании состояния, переданного в качестве реквизита в крючках реакции дочернего компонента

#javascript #react-hooks

Вопрос:

У меня есть 2 кнопки, которые показывают один и тот же компонент с разным текстом и входными данными внутри, отображение/скрытие этого компонента основано на » const [show, setShow] = useState(false);».

Я передаю этому компоненту три реквизита: тип: чтобы знать, какой текст должен быть показан. setShow: состояние родителя. показать: для переключения true/false. Как только пользователь закончит, у компонента появится кнопка «Сохранить» для отправки данных в API и закрытия компонента. Если 1 раз щелкнуть по первой кнопке, компонент отобразит ОК. При нажатии на кнопку «Сохранить» внутри компонента он закрывается нормально. Но когда я нажимаю на вторую кнопку, которая должна снова отображать компонент, но с другим набором текста, у меня возникают эти ошибки реакции:

Ошибка типа: Не удается прочитать свойство » вид «null в d.componentWillLoad> Ошибка типа: Не удается прочитать свойство «дочерние элементы» null>>

Это код родительского компонента ( сокращенно):

 const [show, setShow] = useState(false);
const [typeDemand, setTypeDemand] = useState('');

const createNew= type=> {
    setShow(!show);
    setTypeDemand(type);
  };
 <Button             
 disabled={show}
 onClick={() => createNew('delay')}>
 Show Delay
</Button>
<Button
disabled={show}
onClick={() =>
createNew('resolution')
}
>
show resolution
</Button>
 

И я передаю это дочернему компоненту:

 <ShowDelayResolution
type={typeDemand}
setShow={setShow}
show={show}
/>
 

Единственное, что я делаю в дочернем компоненте, — это вызываю эту функцию при нажатии кнопки «Сохранить», закрываю компонент и ставлю две кнопки НЕ отключенными, чтобы пользователь мог щелкнуть их снова.

   const saveNew = () => {
    setShow(!show);
  };```

I think that maybe as Im using in 3 buttons(show delays, show resolutions in parent component  and save in child component) the same useSate to show/hide the component at some point the component is not there when I want to show it... but why?? whyyyy??????