uni-app iOS端真机状况下 uni-datetime-picker选择日期存在bug

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

uni-app iOS端真机状况下 uni-datetime-picker选择日期存在bug

项目信息 详情
产品分类 uniapp/小程序/微信
PC开发环境操作系统 Mac
PC开发环境操作系统版本号 macOS Sequoia 15.0.1
HBuilderX类型 正式
HBuilderX版本号 4.29
第三方开发者工具版本号 Stable 1.06.2409140
基础库版本号 3.6.3
项目创建方式 HBuilderX

操作步骤:

<uni-datetime-picker ref="pickerRef" type="daterange" :start="dayjs().valueOf()"  
return-type="timestamp" [@change](/user/change)="onChange">  
</uni-datetime-picker>

预期结果:

返回选择的日期的timestamp

实际结果:

返回了timestamp均为dayjs().valueOf()对应日期的数组

bug描述:

测试机
型号:iPhone 13
系统:iOS 17.6.1

开发工具与安卓真机调试未发现问题
在iOS真机上调试时,设置start参数,并且参数类型为Number(String类型没测试),参数type为daterange,
选择日期范围后,@change函数给的数据均为[2024-11-07, 2024-11-07](此处假设start为2024-11-07的时间戳)。

修改代码后以解决bug,修改文件util.js文件

function dateCompare(startDate, endDate) {  
    if(endDate.match(/.* $/)) {  
        endDate = endDate.substring(0, endDate.length - 1)  
    }  
    startDate = new Date(fixIosDateFormat(startDate))  
    endDate = new Date(fixIosDateFormat(endDate))  
    return startDate <= endDate  
}

1 回复

在针对 uni-appuni-datetime-picker 组件在 iOS 真机环境下选择日期存在的 bug 问题时,通常这类问题可能涉及到多个方面,包括组件本身、iOS 系统版本、以及 uni-app 框架的兼容性问题。由于无法直接访问具体的 bug 描述和复现步骤,这里提供一个基础的代码示例,以及可能的调试思路和方法,帮助你定位和解决问题。

代码示例

首先,确保你使用的是最新版本的 uni-appuni-datetime-picker 组件。以下是一个简单的日期选择器示例:

<template>
  <view>
    <uni-datetime-picker
      type="date"
      @change="handleDateChange"
      v-model="selectedDate"
    ></uni-datetime-picker>
    <view>选中的日期: {{ selectedDate }}</view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      selectedDate: ''
    };
  },
  methods: {
    handleDateChange(event) {
      console.log('选中的日期:', event.detail.value);
      this.selectedDate = event.detail.value;
    }
  }
};
</script>

<style>
/* 样式可根据需要调整 */
</style>

调试思路和方法

  1. 检查版本: 确保 uni-app CLI、HBuilderX 以及 uni-ui(包含 uni-datetime-picker)都是最新版本。

  2. 日志输出: 在 handleDateChange 方法中增加详细的日志输出,检查事件对象 event 的具体内容,看是否有异常数据。

  3. 真机调试: 使用 HBuilderX 的真机调试功能,直接连接 iOS 设备进行调试,观察控制台输出,看是否有错误或警告信息。

  4. 模拟器和真机对比: 在 iOS 模拟器上运行相同的代码,观察是否也存在同样的问题。这有助于判断问题是否与真机环境特定相关。

  5. 查阅文档和社区: 访问 DCloud 官方文档和社区论坛,看是否有其他开发者遇到并解决了类似的问题。

  6. 代码审查: 仔细检查 uni-datetime-picker 的使用方式是否符合官方文档要求,包括属性设置、事件监听等。

通过上述步骤,你应该能够更接近问题的根源。如果问题依旧存在,考虑向 uni-app 的官方支持或社区寻求更具体的帮助,提供详细的复现步骤和错误日志。

回到顶部