解决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 分钟前
重构代码中引入外部方法和引入本地扩展的区别
java·开发语言·重构
狸克先生11 分钟前
如何用AI写小说(二):Gradio 超简单的网页前端交互
前端·人工智能·chatgpt·交互
尘浮生13 分钟前
Java项目实战II基于微信小程序的电影院买票选座系统(开发文档+数据库+源码)
java·开发语言·数据库·微信小程序·小程序·maven·intellij-idea
baiduopenmap25 分钟前
百度世界2024精选公开课:基于地图智能体的导航出行AI应用创新实践
前端·人工智能·百度地图
loooseFish33 分钟前
小程序webview我爱死你了 小程序webview和H5通讯
前端
不是二师兄的八戒37 分钟前
本地 PHP 和 Java 开发环境 Docker 化与配置开机自启
java·docker·php
请叫我欧皇i1 小时前
html本地离线引入vant和vue2(详细步骤)
开发语言·前端·javascript
533_1 小时前
[vue] 深拷贝 lodash cloneDeep
前端·javascript·vue.js
爱编程的小生1 小时前
Easyexcel(2-文件读取)
java·excel
guokanglun1 小时前
空间数据存储格式GeoJSON
前端