Semanti c Модальный интерфейс onOpen / onClose не работает - PullRequest
0 голосов
/ 04 августа 2020

Я хочу, чтобы модальное окно закрывалось через 3000 мс.

Но обратный вызов onOpen не вызывается вообще, когда модальное окно открыто.

Есть ли обходной путь для этого?

Я помещаю console.log в onOpen и onClose, но в консоли ничего не отображается.

import React, { Component } from 'react'
    import { Modal, Button, Header } from 'semantic-ui-react'
    
    export default class YourTurnModal extends Component {
    
      constructor(props) {
    super(props)
    this.state = {
      modalState: this.props.isYourTurn,
    }
    this.handleOpen = this.handleOpen.bind(this)
    this.handleClose = this.handleClose.bind(this)
  }

  componentWillReceiveProps(nextProps) {
    this.setState({ modalState: nextProps.isYourTurn })
  }


  render() {
    return (
      <div>
        <Modal
          
          onOpen={() => {
            console.log("Open", this.state.modalState);
            this.setState({
              modalState: true
            },()=>{
              setTimeout(() => {this.setState({ modalState: false });}, 3000);});
          }}
          open={this.state.modalState}
          onClose={() => {this.setState({ modalState: false });console.log("here")}}
          
        >
          <Modal.Content style={{ borderless: 'true' }}>
            <Header>
              Your turn!
            </Header>

            
              <Button
                color="green"
                onClick={() => {this.setState({ modalState: false })}}>
                close
              </Button>
           
          </Modal.Content>
        </Modal>
      </div>
    )
  }
}

Я пробовал с:

<YourTurnModal isYourTurn={true} />
...