How to convey the status through the props? Tell me pliz.Modal opens, but does not close + I am sure that this is not so good
import React from "react"; import {MDBContainer, MDBRow, MDBCol, MDBMask, MDBBtn} from "mdbreact"; import Modal from "./Modal"; class Intro extends React.Component { constructor(props) { super(props); } state = { modal9: false }; toggle = nr => () => { let modalNumber = "modal" + nr; this.setState({ [modalNumber]: !this.state[modalNumber] }); }; render() { return ( <header className="d-flex justify-content-center align-items-center gradient header" id="main" > <MDBMask> <MDBContainer> <MDBRow> <div className="white-text text-center text-md-left col-md-6 mt-xl-5 mb-5"> <h1 className="h1-responsive font-weight-bold mt-sm-5"> ΠΠΎΡΠ΅ΠΌΡ ΠΌΡ? </h1> <hr className="hr-light"/> <h6 className="mb-4"> ΠΡΡΠΎΠΊΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ². ΠΡΠ°ΡΠΈ ΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠΏΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°Π±ΠΎΡΡ, ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΡ
ΠΎΠ΄ΡΡ ΠΊΡΡΡΡ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π² ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ΅Π½ΡΡΠ°Ρ
ΠΌΠΈΡΠ°, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠ°ΡΡΠΈΠ΅ Π² ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΡΡ
ΡΠ΅ΠΌΠΈΠ½Π°ΡΠ°Ρ
ΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡΡ
. </h6> <MDBBtn color="white" onClick={this.toggle(9)}> ΠΠΎΠ»ΡΡΠΈ ΠΊΠΎΠ½ΡΡΠ»ΡΡΠ°ΡΠΈΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ </MDBBtn> </div> <MDBCol md="6" xl="5" className="mt-xl-5"/> </MDBRow> </MDBContainer> </MDBMask> <Modal foo={this.state.modal9}/> </header> ); } } export default Intro; ΠΈ ΡΠ°ΠΌ ΠΌΠΎΠ΄Π°Π» import { MDBBtn, MDBCol, MDBContainer, MDBIcon, MDBInput, MDBModal, MDBModalBody, MDBModalHeader, MDBRow } from "mdbreact"; import React from "react"; import axios from "axios"; export default class Modal extends React.Component { constructor(props) { super(props); this.state = { name: "", email: "", message: "" }; this.handleChange = this.handleChange.bind(this); this.handleSubmit = this.handleSubmit.bind(this); } handleChange = e => { this.setState({[e.target.name]: e.target.value}); }; async handleSubmit(e) { e.preventDefault(); const {name, email, message} = this.state; const form = await axios.post("/api/form", { name, email, message }); } render() { return ( <MDBModal isOpen={this.props.foo} centered> <MDBModalHeader toggle={this.props.foo}> ΠΠΏΠΈΡΠΈΡΠ΅ Π²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½ΠΈΠΆΠ΅: </MDBModalHeader> <MDBModalBody> <MDBContainer> <MDBRow> <MDBCol md="12"> <form onSubmit={this.handleSubmit}> <p className="h5 text-center mb-4"> ΠΡ Π²ΡΠ΅Π³Π΄Π° ΡΠ°Π΄Ρ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ </p> <div className="grey-text"> <MDBInput className="senderName" label="ΠΠ°ΡΠ΅ ΠΈΠΌΡ" name="name" icon="user" group type="text" validate error="wrong" success="right" onChange={this.handleChange} /> <MDBInput className="senderEmail" label="ΠΠ°Ρ email" name="email" icon="envelope" group type="email" validate error="wrong" success="right" onChange={this.handleChange} /> <MDBInput className="senderSubject" label="Π’Π΅ΠΌΠ°" name="subject" icon="tag" group type="text" validate error="wrong" success="right" onChange={this.handleChange} /> <MDBInput className="senderMessage" type="textarea" name="message" rows="2" label="ΠΠ°ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅" icon="pencil-alt" onChange={this.handleChange} /> </div> <div className="text-center"> <MDBBtn type="submit" outline color="secondary"> ΠΡΠΏΡΠ°Π²ΠΈΡΡ{" "} <MDBIcon far icon="paper-plane" className="ml-1"/> </MDBBtn> </div> </form> </MDBCol> </MDBRow> </MDBContainer> </MDBModalBody> </MDBModal> ); } } 