解决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)
复制代码
相关推荐
阿成学长_Cain7 小时前
Linux telinit 命令详解:运行级别切换|关机重启|系统维护一站式掌握
linux·运维·前端·网络
淘源码d7 小时前
医学影像云PACS系统——PACS诊断工作站
java·源码·影像处理·医院管理系统·影像工作站·云pacs系统·dicom 标准通信
Patrick_Wilson8 小时前
最佳实践是有保质期的:从一次 CDN external 白屏事故说起
前端·性能优化·前端工程化
YHHLAI8 小时前
[特殊字符] Agent 智能体开发实战 · 第一课:Tool Use —— 让大模型自动干活
前端·人工智能
nuIl8 小时前
我把 5 个编码 Agent 塞进了一个 npm 包
前端·agent·claude
L-影8 小时前
FastAPI 静态文件:Web 页面的“固定展柜”与“加速引擎”
前端·fastapi
NiceCloud喜云8 小时前
Anthropic 一周三连发:Cowork 多端、Fable 5 按需付费、J-space 论文的技术解读
java·服务器·网络·人工智能·ai
陪我去看海8 小时前
受够了 AI 写完代码留下一堆端口?我做了一个端口管理App!
前端·macos·vibecoding
Xuepoo8 小时前
我抛弃了 DOM,但保留了无障碍访问
前端
李明卫杭州8 小时前
Vue2 vs Vue3 的 h 函数:渲染函数完整迁移指南
前端