Я использую диалоговое окно React-toolbox, и я хочу обернуть его в качестве простого диалогового окна подтверждения, где он работает как alert()
, показывая диалог с сообщением и кнопкой закрытия.Самостоятельное состояние активной реакции (состояние пользовательского интерфейса)
поэтому у меня есть мой презентационный компонент, как этот
const ConfirmationDialog =({active, size, title, message}) => {
const onClickConfirm =()=> {
active = false;
}
return (
<Dialog
active={active}
title={title}
type={size}
>
<p>{message}</p>
<button onClick={onClickConfirm}>Close</button>
</Dialog>
);
}
export default ConfirmationDialog;
The active
приходит из реквизита поэтому диалог подтверждения отображается, когда мне это нужно, но я хотел бы кнопку закрытия только самостоятельно закрыть диалоговое окно.
Должен ли я действительно передать функцию handleOnClose
? кажется слишком избыточным, чтобы передавать эту функцию каждый раз, когда я хочу использовать этот компонент. или мне действительно нужно создать класс контейнера для достижения такого простого действия?
Я не могу заставить ваш код работать: S. когда когда-либо «props.active» изменяется, он не получает рендер, так что даже я изменяю активные реквизиты на true, окна теперь не отображаются: S – Kossel
@ Kossel см. обновленный ответ, я добавил метод 'componentWillReceiveProps', чтобы установить' active' переменная в состояние, когда реквизит изменяется. – 1ven
Oh componentWillReceiveProps сделал трюк спасибо – Kossel