Кнопка openByClickOn не появляется в реагирующем портале v4 - PullRequest
0 голосов
/ 31 марта 2020

Попытка перехода с react-portal с v2 на v4 из-за недавнего обновления React до 16.8.6.

Возникли проблемы с Portal, из-за чего предполагается загрузить кнопку на openByClickOn (как показано ниже), но ничего не появляется. Существуют ли какие-либо существенные изменения в использовании openByClickOn?

      <Portal ref={c => this.findDialog = c} closeOnEsc openByClickOn={<div className="header-button" style={{background: `#78808B no-repeat center right`}}>FIND TICKET</div>} style={{width: '480px'}}>
        <DialogTitle style={{fontSize: '25px', color: 'black'}}>Find Ticket</DialogTitle>
        <DialogContent>
          <Field name="ticketNo" component={renderField} type="text" label="Ticket No." onKeyUp={() => this.setState({error: ''})}
                 style={{width: '100%'}}/>
          {this.state.error && <p style={{color: '#d50000'}}>{this.state.error}</p>}
        </DialogContent>
        <DialogActions>
          <Button type='button' onClick={handleSubmit(this.find.bind(this))} disabled={pristine || submitting}>Find</Button>
          <Button type='button' onClick={() => this.close()}>Close</Button>
        </DialogActions>
      </Portal>

Ожидаемый результат: Отображение кнопки div, которую можно нажать для запуска диалогового окна.

1 Ответ

0 голосов
/ 22 апреля 2020

Подтверждено, что openByClickOn больше не поддерживается в react-portal v4.

Что должно поддерживаться, поскольку это полезно. Особенно, когда вы хотите включить кнопку вместе и обрабатывать открытие диалогового окна при нажатии.

Приложил немало усилий, чтобы изменить код, чтобы преодолеть это. Кнопка HTML должна быть сначала добавлена ​​в родительский компонент, чтобы затем обработать событие.

...