Почему React-Semantic-UI Transition не оживляет компонент? - PullRequest
1 голос
/ 08 марта 2019

У меня есть компонент, который является Modal предупреждением.Для анимации модальных я использую Transition от semantic-ui-реакции.Но только несколько анимаций (pulse, bounce, flash) работают, и это тоже только при монтировании компонента, и не работает, когда я закрываю Modal.Также не работает свойство duration.

class Alert extends React.Component {
  state = {
    open: true
  };

  close = () => {
    this.setState({
      open: false
    });
  };

  render() {
    const { open } = this.state;
    return (
      <Transition animation="fade" duration={1000} visible={open}>
        <Modal
          size="mini"
          closeOnDimmerClick={false}
          closeOnEscape={false}
          open={this.state.open}
          onClose={this.close}>

          <Modal.Content>
            <p>
              Hello user
            </p>
          </Modal.Content>
          <Modal.Actions>
            <Button color="blue" onClick={this.close}>
              Ok
            </Button>
          </Modal.Actions>
        </Modal>
      </Transition>
    );
  }
}

Почему такое странное поведение?Что я делаю не так?

1 Ответ

1 голос
/ 08 марта 2019

Modal - это размонтирование перед тем, как Transition сможет его оживить, одним из способов будет позволить Transition размонтировать модал:

class Alert extends React.Component {
  state = {
    open: true
  };

  close = () => {
    this.setState({
      open: false
    });
  };

  render() {
    const { open } = this.state;
    return (
      <Transition
        animation="fade"
        duration={1000}
        unmountOnHide={true}
        visible={open}
      >
        <Modal
          size="mini"
          closeOnDimmerClick={false}
          closeOnEscape={false}
          open={true}
          onClose={this.close}
        >
          <Modal.Content>
            <p>Hello user</p>
          </Modal.Content>
          <Modal.Actions>
            <Button color="blue" onClick={this.close}>
              Ok
            </Button>
          </Modal.Actions>
        </Modal>
      </Transition>
    );
  }
}

Edit Alert

Надеюсь, это поможет!

...