0
react-bootstrapには、リストを含むポップオーバーがあります。リスト項目の1つをクリックすると、モーダルが開きます。モーダルでポップオーバーを閉じるにはどうすればいいですか
モーダルが開いているときにポップオーバーを閉じるにはどうすればいいですか?
私が試した:
rootClose
をしかし、あなたのコンポーネントModal
が子供であるので、それは両方の閉じReact Bootstrap - How to manually close OverlayTrigger、ポップオーバーとモーダル
class TypeColumn extends React.Component { constructor(props, context) { super(props, context); this.close = this.close.bind(this); } close() { this.refs.overlay.hide(); } render() { const popoverClick = ( <Popover id="popover-trigger-click-root-close"> <ul> <NumberOptions onClick={this.close} /> </ul> </Popover> ); return ( <OverlayTrigger show={show} trigger="click" placement="bottom" overlay={popoverClick} ref="overlay" > <i className={columnTypeIcon} aria-hidden="true" /> </OverlayTrigger> ); } } class NumberOptions extends React.Component { constructor(props) { super(props); this.open = this.open.bind(this); this.state = { showModal: false, }; } open() { this.setState({ showModal: true }); this.props.onClick(); } render() { return ( <div> <li data-value={DATA_TYPES.NUMBER} onClick={this.open} > Options nombre </li> <Modal show={showModal} dialogClassName={styles.customModal} > ... </Modal> </div> ); } }
コードを表示し、使用してください。 – Andrew
@Andrew私はコード、任意のアイデアを追加しましたか? – Philippe
'Modal'を' NumberOptions'から動かす必要があります。少なくとも、 'OverlayTrigger'と同じレベルにする必要があります。 – Andrew