反应语义UI - 模态,而不触发?

问题描述 投票:2回答:2

是否有可能使用一个模式没有触发器?我会打开,并通过国家关闭它。例如,我想在输入栏上使用的onClick(与文件名)与文件选择打开模式,然后编辑在输入字段已选定的文件的名称。所有这一切都在嵌套模式...看起来要简单得多,如果我将有一个父组件都没有情态动词的触发器,我将显示/通过开放式隐藏= {真/假}

谢谢

semantic-ui-react
2个回答
10
投票

是的。不要设置道具触发(不要求),只是提供了从国家/道具开盘值。

class container extends Component {
  state = {
    isParentOpen: false,
    isChildOpen: false
  }

  handleClick = () => {
    this.setState({
      isParentOpen: !this.state.isOpen
    });
  }

  handleFocus = () => {
    this.setState({
      isChildOpen: true
    });
  }

  render() {
    return(
      <div>
        <Modal
          open={this.state.isParentOpen}
          size="large"
        >
          ...
          <Input onFocus={this.handleFocus} />
        </Modal>
        <Modal
          open={this.state.isChildOpen}
          size="small"
        >
          ...
        </Modal>
        <Button onClick={this.handleClick} />
      </div>
    );
  }
}

(您可以嵌套模态,如果你想)


0
投票

通过道具的模式组件,并根据上ComponentDidMount道具火handleOpen。这将允许模式被关闭。

class ModalContainer extends Component {
 componentDidMount() {
    const { startOpen } = this.props;

    if (startOpen) {
      this.handleOpen();
    }
  }

handleOpen = () => this.setState({ modalOpen: true });

handleClose = () => this.setState({ modalOpen: false });
render() {
  return (
     <Modal open={this.state.modalOpen} onClose={this.handleClose} />
  )
}
© www.soinside.com 2019 - 2024. All rights reserved.