mallfoundry / taroify

Taroify 是移动端组件库 Vant 的 Taro 版本,两者基于相同的视觉规范,提供一致的 API 接口,助力开发者快速搭建小程序应用。
https://taroify.github.io/taroify.com/introduce/
MIT License
775 stars 95 forks source link

[Bug Report] Form Field 多条校验规则错误显示问题 #752

Closed mzc9915 closed 3 months ago

mzc9915 commented 4 months ago

问题出在哪个包

@taroify/core

问题出在哪个平台/设备/浏览器

微信小程序

平台/设备/浏览器

No response

你正在使用的 Taroify 版本是多少

0.2.3-alpha.0

描述一下您遇到的问题以及重现步骤

当一个Field组件设置多条 valid rule 时,如果每一个 rule 都校验不通过,目前会将 所有需求信息都显示出来。想请问一下,能否支持 只显示第一条校验错误信息,以节省 ui 空间。 如果目前支持,能否告知一下,该如何实现?

我目前的代码如下:

      <Form ref={formRef} className="login-info-form">
        <Field
          name="phoneNum"
          required
          icon={<Image src={phoneSvg} className="icon-img" />}
          rules={[
            { required: true, message: "请输入手机号"},
            { pattern: /^1[3-9]\d{9}$/, message: "手机号格式错误" },
          ]}
        >
          <Input
            value={phoneNum}
            clearable
            onChange={(e) => setPhoneNum(e.detail.value)}
            type="number"
            placeholder="请输入手机号"
          />
        </Field>
      </Form>

错误提示如下:

image

如果可能的话,请包含一个代码框的链接与复制的问题

No response

你知道如何解决这个问题吗

None

您是否愿意参与修复这个问题,并创建一个 PR

None

修复这个问题的解决方案

No response

hbztd commented 4 months ago

只写一个rule

rules={[{ validator: val => val ? /^1[3-9]\d{9}$/.test(val) ? true : "手机号格式错误" : "请输入手机号" }]}