我需要像这样打开/关闭模式
$(元素).modal(’show’)
怎么做
您正在寻找的是自定义模式触发器,它使用overlymixin
并允许您自己管理模式的状态。您可以使用this.setState({isModalOpen:true})
来控制是否显示模式,以实现与下面示例中您在帖子中要求的内容相同的效果。以下代码来自react引导程序网站(http://react-bootstrap.github.io/components.html#modals):
const CustomModalTrigger=React.createClass({
mixin:[overlymixin],
getInitialState(){
返回{
伊斯莫达洛彭:错
};
},
手语{
这是我的国家({
isModalOpen:!this.state.isModalOpen
});
},
render(){
返回(
<;Button onClick={this.handleToggle}bsStyle='primary'>;启动<;/Button>;
);
},
//当此组件
//安装或更新,并将返回值附加到主体。
renderverlay(){
如果(!this.state.isModalOpen){
返回<;span/>;;
}
返回(
<;Modal bsStyle='primary'title='Modal heading'onRequestHide={this.handleToggle}>;
<;div className='modal-body'>;
此模式由我们的自定义触发器组件控制。
<;/div>;
<;div className='modal-footer'>;
<;Button onClick={this.handleToggle}>;Close<;/Button>;
<;/div>;
<;/Modal>;
);
}
});
React.render(<;CustomModalTrigger/>;,mountNode);
更新(2015年8月4日)
在React Bootstrap的最新版本中,是否显示模态由传递给模态的show
prop控制。控制模式状态不再需要OverlyMixin
。仍然通过setState
控制模式的状态,在本例中,通过this.setState({showmodel:true})
。以下内容基于React Bootstrap网站上的示例:
常量ControlleModalExample=React.createClass({
getInitialState(){
返回{showmodel:false};
},
关闭(){
this.setState({showmodel:false});
},
开(){
this.setState({showmodel:true});
},
render(){
返回(
<;div>;
<;按钮onClick={this.open}>;
发射模态
<;/Button>;
<;Modal show={this.state.showModal}onHide={this.close}>;
<;模态收割台关闭按钮>;
<;模态标题>;模态标题<;/模态标题>;
<;/Modal.Header>;
<;模态车身>;
<;div>;此处的模态内容<;/div>;
<;/Modal.Body>;
<;模态页脚>;
<;Button onClick={this.close}>;close<;/Button>;
<;/Modal.Footer>;
<;/Modal>;
<;/div>;
);
}
});