uni-app胶囊按钮重新进入小程序后,打开picker选择日期,使用android物理返回键返回时picker未关闭

发布于 1周前 作者 h691938207 来自 Uni-App

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>
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!