具有ButtonGroup的React-Bootstrap故障或将模态放在何处?

时间:2016-01-05 19:06:46

标签: javascript twitter-bootstrap reactjs react-bootstrap

< p>在< a href =“https://react-bootstrap.github.io/”rel =“nofollow”> react-bootstrap< / a&gt ;,我正在尝试创建一个可重复使用的按钮类点击时会显示一个模态。最终,< code> Modal< / code>将包含一个简单的“编辑”表单,用于修改表/列表中的多个条目。 < / p为H. < p>在这里,我将问题简化为一个简单的“确认”对话框,试图获得最低限度的完整示例。< / p> < p>我遇到的麻烦是嵌入< code> Modal< / code>内联一个< code> Button< / code>在< code> ButtonGroup< / code>中正在打破按钮组的格式。具体而言,自定义< code> ConfirmActionButton< / code>将显示为独立按钮,而不是该组的一部分。< / p> < p>我知道我可以通过移动< code> Modal< / code>来解决布局问题。在< code> ButtonGroup< / code>之外完全(也许这是正确的事情?),但这似乎没有很好的封装/模块化。< / p> < p>有没有办法让这个渲染像普通的按钮组一样?或者重新安排莫代尔居住的唯一真正前进方向?< / p> < p>这是我所拥有的< a href =“https://jsfiddle.net/69z2wepo/26551/"rel =”nofollow“> jsfiddle< / a>例如:< / p> < pre>< code> / *这里省略了一堆var'X = ReactBootstrap.X'行* / var ConfirmActionButton = React.createClass({   getInitialState:function(){     return {show:false};   },   ok:function(){     this.setState({的ShowModal:假});     this.props.onClick();   },   取消:function(){     this.setState({的ShowModal:假});   },   show:function(){     this.setState({的ShowModal:真});   },   render:function(){     回来(       <跨度>         < Button onClick = {this.show}>           {} this.props.children         < /按钮>         < Modal show = {this.state.showModal}>           < ModalHeader>确认< / ModalHeader>           < ModalBody> {this.props.confirmMessage}< / ModalBody>           < ModalFooter>             < Button onClick = {this.cancel}> Ok< / Button>             < Button onClick = {this.ok}> Ok< / Button>           < / ModalFooter>         < /模态>       < /跨度>     );   } }); var MyToolbar = React.createClass({   render:function(){     回来(       < ButtonToolbar>         <&ButtonGroup的GT;           < Button>点击此处< / Button>           < Button>不,这里< / Button>           < ConfirmActionButton confirmMessage =“你确定吗?”                                的onClick = {this.someAction}           >             做一点事           < / ConfirmActionButton>         < / ButtonGroup的>       < / ButtonToolbar>     );   },   someAction:function()   {     警报(“你做到了”);   }, }); ReactDOM.render(     < DIV>       < MyToolbar />     < / DIV>中     的document.getElementById( '例如') ); < /代码>< /预>

1 个答案:

答案 0 :(得分:1)

您可以将<Modal />放在<Button />的{​​{1}}内,然后移除违反<ConfirmActionButton />布局的<span>

btn-grp