0

react-portal由于最近升级React到 16.8.6 ,一直在尝试从 v2 迁移到 v4。

有问题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 按钮。

4

1 回答 1

0

已确认v4openByClickOn不再支持。react-portal

应该支持它,因为它很有用。特别是当想要一起包含一个按钮并在单击时处理对话框的打开时。

花了相当大的努力来改变代码来克服这个问题。需要先在父组件中添加 HTML 按钮才能处理事件。

于 2020-04-22T10:39:29.770 回答