У меня проблема с реквизитом для обновления.У меня есть два компонента.Первое - это приложение, в котором есть кнопка, которая открывает или закрывает модальное окно.Второе - это модальная структура.Первый компонент хранит состояние, я нажимаю на кнопку, состояние меняется, я отправляю реквизит компоненту ModalComponent
(модальный режим открывается).И в этом компоненте следует изменить это состояние, если я хочу закрыть модальное.Но если я нажму на кнопку Cancel
в модальном режиме, ничего не произойдет.Состояние не меняется.Как это изменить, как бы это сделало общение между ребенком и родителем?Это мой код ModalComponent
import React, { Component } from "react";
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from "reactstrap";
class ModalComponent extends Component {
constructor(props) {
super(props);
this.state = {
modal: props.modal
};
this.toggle = this.toggle.bind(this);
}
toggle() {
const { modal } = this.state;
this.setState({
modal: !modal
});
}
render() {
const { modal } = this.props;
return (
<div>
<Modal isOpen={modal} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>Halo</ModalHeader>
<ModalFooter>
<Button onClick={this.toggle}>Cancel</Button>
</ModalFooter>
</Modal>
</div>
);
}
}
export default ModalComponent;
Приложение
import React from "react";
import ReactDOM from "react-dom";
import Modal from "./modal";
import { Button } from "reactstrap";
import "./styles.css";
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
modal: false
};
this.toggle = this.toggle.bind(this);
}
toggle() {
const { modal } = this.state;
this.setState({
modal: !modal
});
}
render() {
const { modal } = this.state;
return (
<div>
<Button
type="link"
onClick={this.toggle}
>
Delete account
</Button>
<Modal modal={modal} />
</div>
);
}
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);