React native 打开按钮上的反应本机模式单击操作表选项
我正在使用react本机操作表库。 当我单击操作表上的一个选项并想关闭react native actionsheet时,我想打开react native ModeReact native 打开按钮上的反应本机模式单击操作表选项,react-native,modal-dialog,react-native-modal,React Native,Modal Dialog,React Native Modal,我正在使用react本机操作表库。 当我单击操作表上的一个选项并想关闭react native actionsheet时,我想打开react native Mode <ActionSheet ref={o => this.ActionSheet = o} options={[ ( <TouchableOpacity style={styles.actionTextInline} onPress={() => {
<ActionSheet
ref={o => this.ActionSheet = o}
options={[
(
<TouchableOpacity style={styles.actionTextInline} onPress={() => {
this.openReservationModal(); this.ActionSheet.hide();
}}>
<Icon name="receipt" size={24} style={{ color: '#737373' }} />
</TouchableOpacity>
), (
<TouchableOpacity style={styles.actionTextInline}>
<Icon name="call" size={24} style={{ color: '#737373' }} />
</TouchableOpacity>
), (
<TouchableOpacity style={styles.actionTextInline} onPress={() => { alert("Hello friends !!") }}>
<Icon name="message" size={24} style={{ color: '#737373' }} />
</TouchableOpacity>
)
]}
cancelButtonIndex={2}
destructiveButtonIndex={-1}
styles={{
body: {
flex: 1,
backgroundColor: '#FFFFFF',
borderRadius: 10,
height: 100
},
cancelButtonBox: {
height: 50,
backgroundColor: '#FFFFFF',
paddingLeft: 16,
paddingTop: 16,
alignItems: 'flex-start'
},
buttonBox: {
height: 50,
backgroundColor: '#FFFFFF',
borderRadius: 10,
paddingLeft: 16,
paddingTop: 16,
alignItems: 'flex-start'
},
}}
/>
是关闭操作表的任何方法
<ActionSheet
ref={o => this.ActionSheet = o}
options={[
(
<TouchableOpacity style={styles.actionTextInline} onPress={() => {
this.openReservationModal(); this.ActionSheet.hide();
}}>
<Icon name="receipt" size={24} style={{ color: '#737373' }} />
</TouchableOpacity>
), (
<TouchableOpacity style={styles.actionTextInline}>
<Icon name="call" size={24} style={{ color: '#737373' }} />
</TouchableOpacity>
), (
<TouchableOpacity style={styles.actionTextInline} onPress={() => { alert("Hello friends !!") }}>
<Icon name="message" size={24} style={{ color: '#737373' }} />
</TouchableOpacity>
)
]}
cancelButtonIndex={2}
destructiveButtonIndex={-1}
styles={{
body: {
flex: 1,
backgroundColor: '#FFFFFF',
borderRadius: 10,
height: 100
},
cancelButtonBox: {
height: 50,
backgroundColor: '#FFFFFF',
paddingLeft: 16,
paddingTop: 16,
alignItems: 'flex-start'
},
buttonBox: {
height: 50,
backgroundColor: '#FFFFFF',
borderRadius: 10,
paddingLeft: 16,
paddingTop: 16,
alignItems: 'flex-start'
},
}}
/>
在上面的代码中,当我执行onPress时,希望调用this.openReservationModal并关闭actionsheet。但是没有发生任何事情。这是因为react-native actionsheet在内部使用react-native模式,并且您在onpress上编写的语句正在异步运行,这就是为什么没有发生任何事情。 现在,您必须为第二条语句使用timeout,它将工作,只需在onpress中使用以下代码,它将工作: 代码:
我希望这会有所帮助……谢谢:作为stackoverflow的新用户,如果它对您有效,您应该接受并向上投票……谢谢:@Ravisrinivasan如果它对您有效,请接受并向上投票……谢谢:谢谢您的回答。它正在使用设置超时