vantui icon indicating copy to clipboard operation
vantui copied to clipboard

DatetimePicker报错导致页面卡死

Open ZerlinM opened this issue 7 months ago • 1 comments

这个 Issue 涉及以下平台:

  • [x] 微信小程序
  • [ ] 支付宝小程序
  • [ ] 百度小程序
  • [ ] 头条小程序
  • [ ] 快手小程序
  • [ ] QQ 轻应用
  • [ ] Web 平台(H5)

BUG 描述 在Form中使用DatetimePicker,报错,点击“请选择”无响应,并且页面卡死 其他组件也无法点击使用 复现步骤

<Form
  form={formIt}
  onFinish={(errs, res) => console.info(errs, res)}
>
  <FormItem
    label="时间"
    name="date"
    required
    borderBottom
    trigger="onInput"
    controllFlexEnd
  >
    <DatetimePicker
      mode="content"
      type="date"
      minDate={new Date(2018, 0, 1).getTime()}
      renderContent={(d) => {
        if (d && d.length) {
          return `${d[0]}年${d[1]}月${d[2]}日`;
        } else return '请选择';
      }}
      showArrowRight
    />
  </FormItem>
</Form>

期望结果 正常使用 不要报错 实际结果

截图

Image

环境 "@tarojs/cli": "3.6.2" "@antmjs/vantui": "3.6.3"

附加信息 把vantui版本降到 3.4.9 就不会报错,感觉大概率是因为 v3.5 版本增加的 mode="content"导致的,但未找到解决方案

ZerlinM avatar May 16 '25 09:05 ZerlinM

请提供一下完整复现代码

这样使用没有出现异常:

export default function Demo() {
  const formIt = Form.useForm()

  return (
    <Form form={formIt} onFinish={(errs, res) => console.info(errs, res)}>
      <FormItem
        label="时间"
        name="date"
        required
        borderBottom
        trigger="onChange"
        controllFlexEnd
      >
        <DatetimePicker
          mode="content"
          type="date"
          minDate={new Date(2018, 0, 1).getTime()}
          renderContent={(d) => {
            if (d && d.length) {
              return `${d[0]}年${d[1]}月${d[2]}日`
            } else return '请选择'
          }}
          showArrowRight
        />
      </FormItem>
    </Form>
  )
}

HyaCiovo avatar May 19 '25 06:05 HyaCiovo