#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??????