Igo*_*kin 26 twitter-bootstrap reactjs react-bootstrap
我需要打开/关闭模态
$(元素).modal( '秀')
怎么做?
Mar*_*ark 35
您正在寻找的是自定义模态触发器,它使用OverlayMixin
并允许您自己管理模态的状态.您可以控制是否使用模式显示this.setState({isModalOpen: true})
以获得与下面示例中的帖子相同的效果.以下代码来自react-bootstrap网站(http://react-bootstrap.github.io/components.html#modals):
const CustomModalTrigger = React.createClass({
mixins: [OverlayMixin],
getInitialState() {
return {
isModalOpen: false
};
},
handleToggle() {
this.setState({
isModalOpen: !this.state.isModalOpen
});
},
render() {
return (
<Button onClick={this.handleToggle} bsStyle='primary'>Launch</Button>
);
},
// This is called by the `OverlayMixin` when this component
// is mounted or updated and the return value is appended to the body.
renderOverlay() {
if (!this.state.isModalOpen) {
return <span/>;
}
return (
<Modal bsStyle='primary' title='Modal heading' onRequestHide={this.handleToggle}>
<div className='modal-body'>
This modal is controlled by our custom trigger component.
</div>
<div className='modal-footer'>
<Button onClick={this.handleToggle}>Close</Button>
</div>
</Modal>
);
}
});
React.render(<CustomModalTrigger />, mountNode);
Run Code Online (Sandbox Code Playgroud)
更新(2015年8月4日)
在最新版本的React-Bootstrap中,是否显示模态由show
传递给模态的prop 控制.将OverlayMixin
不再需要控制模式状态.setState
在这个例子中,仍然通过控制模态的状态来完成this.setState({ showModal: true })
.以下是基于React-Bootstrap网站上的示例:
const ControlledModalExample = React.createClass({
getInitialState(){
return { showModal: false };
},
close(){
this.setState({ showModal: false });
},
open(){
this.setState({ showModal: true });
},
render() {
return (
<div>
<Button onClick={this.open}>
Launch modal
</Button>
<Modal show={this.state.showModal} onHide={this.close}>
<Modal.Header closeButton>
<Modal.Title>Modal heading</Modal.Title>
</Modal.Header>
<Modal.Body>
<div>Modal content here </div>
</Modal.Body>
<Modal.Footer>
<Button onClick={this.close}>Close</Button>
</Modal.Footer>
</Modal>
</div>
);
}
});
Run Code Online (Sandbox Code Playgroud)
Jan*_*imo 11
你的模态将有一个show
道具和一个onHide
道具,以确定它何时显示.例如:
<Modal show={this.state.showModal} onHide={this.close}>
Run Code Online (Sandbox Code Playgroud)
该onHide
函数只是改变了showModal
属性.根据父母的状态显示/隐藏您的模态:
close(){
this.setState({ showModal: false });
}
Run Code Online (Sandbox Code Playgroud)
如果您想从模态本身中关闭模态,则可以触发onHide
父对象上定义的函数props
.例如,这是一个关闭它的模态内部的按钮:
<button type="button" className="close" onClick={this.props.onHide}>
<span>×</span>
</button>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
57832 次 |
最近记录: |