uni-app胶囊按钮重新进入小程序后,打开picker选择日期,使用android物理返回键返回时picker未关闭
uni-app胶囊按钮重新进入小程序后,打开picker选择日期,使用android物理返回键返回时picker未关闭
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Mac | 11.3 | HBuilderX |
### 操作步骤:
详情页面点击右上角胶囊按钮,选择重新进入小程序,再在详情页面点击picker控件,选择日期,此时点击andorid物理返回按钮,picker未进行关闭,返回列表页面;
### 预期结果:
详情页面点击右上角胶囊按钮,选择重新进入小程序,再在详情页面点击picker控件,选择日期,此时点击andorid物理返回按钮,picker进行关闭,返回列表页面;
### 实际结果:
picker未进行关闭,返回列表页面;
### bug描述:
正常操作:详情页面打开picker选择日期,点击Android物理返回按钮,picker成功关闭,返回列表页面;
异常情况:详情页面点击右上角胶囊按钮,选择重新进入小程序,再在详情页面点击picker控件,选择日期,此时点击andorid物理返回按钮,picker未进行关闭,返回列表页面;
[1651113750519280.mp4_.zip](//ask.dcloud.net.cn/file/download/file_name-MTY1MTExMzc1MDUxOTI4MC5tcDRfLnppcA==__url-Ly9pbWctY2RuLXRjLmRjbG91ZC5uZXQuY24vdXBsb2Fkcy9xdWVzdGlvbnMvMjAyMjA0MjgvZmNjNjhkZjMyZmVjNWE2OThmOGJkZmM4Mjg2YjA3NWY=)
3 回复
返回的时候,手动隐藏picker
怎么手动关闭
在 uni-app
中,使用 picker
组件选择日期时,如果通过 Android 物理返回键返回,picker
可能不会自动关闭。这是因为 picker
组件的关闭逻辑通常依赖于 cancel
事件或 hide
方法,而物理返回键默认不会触发这些事件或方法。
要解决这个问题,你可以通过监听页面的 onBackPress
生命周期钩子,手动关闭 picker
。以下是一个示例代码:
<template>
<view>
<picker mode="date" :value="date" @change="onDateChange" ref="datePicker">
<view>{{ date }}</view>
</picker>
</view>
</template>
<script>
export default {
data() {
return {
date: '2023-10-01'
};
},
methods: {
onDateChange(e) {
this.date = e.detail.value;
}
},
onBackPress() {
// 手动关闭 picker
if (this.$refs.datePicker) {
this.$refs.datePicker.hide();
return true; // 阻止默认返回行为
}
return false; // 允许默认返回行为
}
};
</script>