在 Vue 中,如果要在一个对象中使用另一个对象中定义的函数,需要在使用之前将其定义为一个独立的函数,然后再将其赋值给对象中的属性。

在你的情况下,将leimu函数的定义移动到rules对象之前即可解决该错误。修改后的代码如下:

const leimu = (rule: any, value: any, callback: any) => {
    if (formData.parentCategoryId = null) {
        return callback(new Error('请输入4位字符串'));
    }
    else {
        return callback(new Error('请输入8位字符串'));
    }
    callback();
};

const rules = reactive<FormRules>({
    categoryName: [
        { required: true, message: '请输入类目名称', trigger: 'blur' },
        { validator: leimu, trigger: 'blur' },
        // { max: 8, message: '限制8位字符串', trigger: 'blur' },  //20230816lixiaohong要求修改
    ],
});

这样修改后,你就可以在rules对象中使用leimu函数了。

Vue 中'Uncaught (in promise) ReferenceError: Cannot access 'leimu' before initialization' 错误解决方法

原文地址: https://www.cveoy.top/t/topic/qlDZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录