Meituan-Dianping / beeshell

React Native 组件库
MIT License
1.8k stars 280 forks source link

modal onOpen为什么不起作用 #24

Closed happyEgg closed 5 years ago

happyEgg commented 5 years ago

问题是什么

问题的具体描述,尽量详细

环境

在线例子

<Modal onOpen={()=>{this.setState({ newName: this.props.userName, })}}

其他

我想在modal打开的时候去修改newName,打开后正好能显示。但是onOpen是失效的。 onOpened是可以使用的,但是界面打开后setState会有很明显的刷新效果。 请问在界面打开之前怎么让setState生效

wxlworkhard commented 5 years ago
  1. onOpen 回调是调用 open 方法时同步调用,此时 setState 设置的新状态未生效,所以内容不会更新。
  2. onOpened 是打开弹窗后的回调,打开弹窗后,再设置新状态,当然是刷新。

你的场景应该这样做:

this.setState({
  newName: this.props.userName,
}, () => {
  this.modal.open();
})
happyEgg commented 5 years ago

好的,谢谢