uni-app picker组件日期选择 设置fields为月份month 在电脑上微信小程序中还是出现了日

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

uni-app picker组件日期选择 设置fields为月份month 在电脑上微信小程序中还是出现了日

示例代码:

<p>&lt;picker mode="date" :value="formData.queryTime" :start="startDate" :end="endDate" fields='month'  @change="bindDateChange"&gt;<br>
&lt;view class="uni-input"&gt;{{formData.queryTime}}&lt;/view&gt;<br>
&lt;/picker&gt;

操作步骤:

  • 在电脑端微信会复现

预期结果:

  • 不能有日的选项

实际结果:

  • 出现了日

bug描述:

在手机上真机调试没问题,但是在电脑微信端弹picker日期选择器,我设置的fields为month,正常时只有年月,但是在电脑微信端年月日都出现了

项目 信息
产品分类 uniapp/小程序/微信
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 windos10
HBuilderX类型 正式
HBuilderX版本号 3.8.7
第三方开发者工具版本号 1.06.2310071
基础库版本号 1.0.0
项目创建方式 HBuilderX

3 回复

请向微信开发者社区反馈


uni-app 中使用 picker 组件进行日期选择时,如果你将 fields 属性设置为 month,理论上应该只显示年份和月份,而不显示日期。然而,如果你在电脑上的微信小程序中仍然看到日期部分,可能是由于以下原因:

1. 微信开发者工具的兼容性问题

  • 微信开发者工具在某些版本中可能存在兼容性问题,导致 fields 属性设置为 month 时仍然显示日期部分。
  • 你可以尝试更新微信开发者工具到最新版本,或者在不同的设备上测试,看看是否仍然存在这个问题。

2. 代码实现问题

  • 确保你在 picker 组件中正确设置了 fields 属性。以下是一个示例代码:

    <picker mode="date" fields="month" @change="onDateChange">
      <view>选择月份</view>
    </picker>
  • onDateChange 方法中,你可以处理选择的日期数据:

    methods: {
      onDateChange(e) {
        console.log('选择的月份:', e.detail.value);
      }
    }

3. 微信小程序的限制

  • 微信小程序本身可能对 picker 组件的 fields 属性支持不完全,尤其是在某些平台或设备上。
  • 如果你在真机上测试时仍然存在问题,可能需要考虑使用其他方式来实现月份选择,例如自定义 picker 组件或使用第三方库。

4. 替代方案

  • 如果 picker 组件的 fields 属性无法满足需求,你可以考虑使用 picker-view 组件来自定义选择器,只显示年份和月份。

    <picker-view :value="pickerValue" @change="onPickerChange">
      <picker-view-column>
        <view v-for="year in years" :key="year">{{ year }}年</view>
      </picker-view-column>
      <picker-view-column>
        <view v-for="month in months" :key="month">{{ month }}月</view>
      </picker-view-column>
    </picker-view>
    data() {
      return {
        years: [2020, 2021, 2022, 2023],
        months: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
        pickerValue: [0, 0] // 默认选择第一个年份和第一个月份
      };
    },
    methods: {
      onPickerChange(e) {
        const [yearIndex, monthIndex] = e.detail.value;
        const selectedYear = this.years[yearIndex];
        const selectedMonth = this.months[monthIndex];
        console.log('选择的月份:', `${selectedYear}年${selectedMonth}月`);
      }
    }
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!