解决uniapp使用up-form组件,uView提示:未设置rules,请看文档说明!如果已经设置,请刷新页面。

up-form组件 :model="formData" :rules="rules"
rules中的属性在formData要赋初始值,比如下面的例子

表单样式

html 复制代码
          <up-form labelPosition="top" labelWidth="auto" :labelStyle="{ color: '#333333' }" :model="formData"
            :rules="rules" ref="formRef">
            <view class="form-item">
              <up-form-item borderBottom prop="userName" label="收货人">
                <up-input v-model="formData.userName" border="none" placeholder="请输入姓名" />
              </up-form-item>
            </view>
            <view class="form-item">
              <up-form-item borderBottom prop="phone" label="手机号吗">
                <up-input v-model="formData.phone" border="none" placeholder="请输入手机号吗" />
              </up-form-item>
            </view>
            <view class="form-item">
              <up-form-item borderBottom prop="address" label="收货地址">
                <up-input v-model="formData.address" border="none" placeholder="请输入详情地址" />
              </up-form-item>
            </view>
          </up-form>

✔正确代码

js 复制代码
const state = reactive({
  formData: {
    userName: '',
    phone: '',
    address: '',
  } as UserAddressUpdateReq,
  rules: {
    'userName': {
      type: 'string',
      required: true,
      message: '请输入姓名',
      trigger: ['blur', 'change']
    },
    'phone': [{
      type: 'string',
      required: true,
      message: '请输入手机号吗',
      trigger: ['blur', 'change']
    },
    {
      validator: (rule: any, value: any, callback: any) => {
        return uni.$u.test.mobile(value);
      },
      message: '手机号码不正确',
      trigger: ['change', 'blur'],
    }],
    'address': {
      type: 'string',
      required: true,
      message: '请输入详情地址',
      trigger: ['blur', 'change']
    }
  }
})
const { formData, rules } = toRefs(state)

❌错误代码

js 复制代码
const state = reactive({
  formData: {} as UserAddressUpdateReq,
  rules: {
    'userName': {
      type: 'string',
      required: true,
      message: '请输入姓名',
      trigger: ['blur', 'change']
    },
    'phone': [{
      type: 'string',
      required: true,
      message: '请输入手机号吗',
      trigger: ['blur', 'change']
    },
    {
      validator: (rule: any, value: any, callback: any) => {
        return uni.$u.test.mobile(value);
      },
      message: '手机号码不正确',
      trigger: ['change', 'blur'],
    }],
    'address': {
      type: 'string',
      required: true,
      message: '请输入详情地址',
      trigger: ['blur', 'change']
    }
  }
})
const { formData, rules } = toRefs(state)
复制代码
相关推荐
砍材农夫7 小时前
spring|spring web|拦截器、过滤器、aop
java·spring boot·spring·spring cloud
萧行之7 小时前
可视化技术复盘:从图形语法看 D3、Vega-Lite、ECharts、Observable Plot
前端·学习·数据可视化
mldong14 小时前
一个 App,十三套后端:手机审批端 uni-jeeflow-app 开源了
java·架构
tqs_1234515 小时前
MySQL RR隔离级别死锁|Gap间隙锁、临键锁,订单并发范围查询死锁根因方案
java
逆境不可逃15 小时前
Pi Agent 学习笔记:多个工具怎样并行执行
java
尾善爱看海15 小时前
Vue 面试收官篇:SSR、性能优化落地、30 道高频面试题精讲(附标准答案)
前端·javascript·vue.js·面试·vue
Flynt16 小时前
Java 27 升级实测:默认值动得比新特性多,有个老参数会让 JVM 直接起不来
java·jvm·后端
Bs_MoneyMagnet16 小时前
基于springboot+vue的个人健康管理系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·vue3·springboot3·计算机毕业设计
驳是16 小时前
一个组件,提升 react-router 开发的幸福感
前端·preact
GreenTea16 小时前
OpenAI Agents API 上手实测:一次调用把整个 agent loop 甩给 OpenAI
前端·后端·算法