Javascript 可以在需要时成功打开模式,但无法关闭它

Javascript 可以在需要时成功打开模式,但无法关闭它,javascript,reactjs,Javascript,Reactjs,我正在尝试使用React boostrap模式,我可以在需要时成功打开它,但无法关闭它。我不知道我做错了什么 我的标记 ``` <Modal show={this.props.show} > <Modal.Header> <Modal.Title>Enter Log</Modal.Title>

我正在尝试使用React boostrap模式,我可以在需要时成功打开它,但无法关闭它。我不知道我做错了什么

我的标记

```                <Modal show={this.props.show} >
                    <Modal.Header>
                        <Modal.Title>Enter Log</Modal.Title>
                    </Modal.Header>
                    <Modal.Body>
                        Hello i am Modal!!!!!
                    </Modal.Body>
                    <Modal.Footer>
                    <Button onClick={() => {closeModal()}}  variant="primary"> Close </Button>
                    </Modal.Footer>```
处理函数:

const closeModal = () => {
    this.setState({closeModal: true}); 
}
你可以这样做

const closeModal = () => {
    this.setState({ show: false});
}

<Modal show={this.props.show} onHide={this.props.closeModal} >
    <Modal.Header closeButton>
        <Modal.Title>Enter Log</Modal.Title>
    </Modal.Header>
    <Modal.Body>
       <p> Hello i am Modal!!!!! </p>
    </Modal.Body>
    <Modal.Footer>
        <Button onClick={this.props.closeModal} variant="primary"> Close </Button>
    </Modal.Footer>
</Modal>
const closeModal=()=>{
this.setState({show:false});
}
输入日志
你好,我是莫代尔

接近
reference

您可以这样做

const closeModal = () => {
    this.setState({ show: false});
}

<Modal show={this.props.show} onHide={this.props.closeModal} >
    <Modal.Header closeButton>
        <Modal.Title>Enter Log</Modal.Title>
    </Modal.Header>
    <Modal.Body>
       <p> Hello i am Modal!!!!! </p>
    </Modal.Body>
    <Modal.Footer>
        <Button onClick={this.props.closeModal} variant="primary"> Close </Button>
    </Modal.Footer>
</Modal>
const closeModal=()=>{
this.setState({show:false});
}
输入日志
你好,我是莫代尔

接近

reference

您需要使用相同的条件来检查是否渲染模态

您正在使用
props
检查是否应渲染模态,关闭模态时,您将
state
设置为false

如果你想使用
道具
,你需要更新你的道具,使用redux和分派动作或者其他什么

根据您的handleClose功能,您需要在条件中检查
状态
,而不是
道具

const closeModal=()=>{
this.setState({closeModal:true});
}

<Modal show={this.props.show} >
                <Modal.Header>
                    <Modal.Title>Enter Log</Modal.Title>
                </Modal.Header>
                <Modal.Body>
                    Hello i am Modal!!!!!
                </Modal.Body>
                <Modal.Footer>
                <Button onClick={() => this.closeModal()} variant="primary"> Close </Button>
                </Modal.Footer>

输入日志
你好,我是莫代尔!!!!!
this.closeModal()}variant=“primary”>关闭

您需要使用相同的条件来检查是否渲染模式

您正在使用
props
检查是否应渲染模态,关闭模态时,您将
state
设置为false

如果你想使用
道具
,你需要更新你的道具,使用redux和分派动作或者其他什么

根据您的handleClose功能,您需要在条件中检查
状态
,而不是
道具

const closeModal=()=>{
this.setState({closeModal:true});
}

<Modal show={this.props.show} >
                <Modal.Header>
                    <Modal.Title>Enter Log</Modal.Title>
                </Modal.Header>
                <Modal.Body>
                    Hello i am Modal!!!!!
                </Modal.Body>
                <Modal.Footer>
                <Button onClick={() => this.closeModal()} variant="primary"> Close </Button>
                </Modal.Footer>

输入日志
你好,我是莫代尔!!!!!
this.closeModal()}variant=“primary”>关闭

根据您应该设置的文档
this.state.show
to
false
:我尝试了标题中的closeButton,它在右上角有一个小十字,但当我单击它时它仍然没有关闭,我还尝试了隐藏`className=“addLog”>`{closeModal()}}>```@约翰,请看一下我的密码。如果
{this.props.show}
为true,并且onClose函数将
state.show
设置为false,我认为这将帮助您进行模态渲染。你使用的是道具vsstate@Drusto是的,这是正确的。我使用道具打开<代码>显示<代码>模式,并尝试使用状态<代码>关闭模式<代码>根据您应该设置的文档关闭它。状态。显示<代码>到<代码>错误<代码>:我尝试了标题中的关闭按钮,该按钮在右上角有一个小十字,但是当我单击它时,它仍然没有关闭,我还尝试了隐藏`className=“addLog”>``{closeModal()}}>````@John请查看我的代码。如果
{this.props.show}
为true,并且onClose函数将
state.show
设置为false,我认为这将帮助您进行模态渲染。你使用的是道具vsstate@Drusto是的,这是正确的,我使用道具打开
显示
模态,并尝试使用状态
关闭模态
关闭它