由于最近将react-portal升级到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按钮,可以单击该按钮启动对话框。
发布于 2020-04-22 10:39:29
据证实,openByClickOn在react-portal v4中不再支持。
它应该得到支持,因为它是有用的。特别是当想要包括一个按钮在一起,并处理打开对话框时,点击。
花了很大的努力来改变代码来克服这一点。首先需要在父组件中添加HTML按钮来处理事件。
https://stackoverflow.com/questions/60953017
复制相似问题