отображать диалог в reactjs родительский диалог вызова дочерний - PullRequest
0 голосов
/ 01 мая 2020

Из родительского компонента я вызываю диалог AlertDialog, который я отправляю с реквизитом openIt со значением true

это родительский компонент

...
       {this.state.open && (
                    <Dialog extends openit={true} />
                ) }
...

дочерний компонент Диалог

import ...;
...
let isOpen = false;
class Dialog extends extends Component {
    constructor(props) {
        super(props);
        this.state = {
            open: false,
        };
    }


    componentDidMount() {
    }

    static getDerivedStateFromProps(props, state) {
        if (state.open === false && isOpen === false) {
            state.open = props.openIt;
            return state.open;
        }
        return null;
    }


    handleClose = () => {
        this.setState({ open: false });
        isOpen = true;
    };

    render() {
        const { open } = this.state;
        return (
            <Dialog open={open} >
            </Dialog>
    ...

в этом методе я пропускаю опцию openIt, чтобы заявить об открытии, так что этот метод вернет true в качестве значения open, и появится диалоговое окно

, когда я нажму ok, чтобы закрыть диало, вызывается метод handleClose и значение из open будет ложным, но проблема getDerivedStateFromProps будет запущена снова во второй раз, когда я запускаю

{this.state.open && (
                        <Dialog extends openit={true} />
                    ) }

, модальное состояние не будет отображаться, потому что состояние открытия истинно, я не знаю, как решить эту проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...