我没有发现任何解决这个问题的方法。我得到了这个Vue组件的以下错误。我正在尝试使用Vuelidate库来验证我的表单。你知道我错过了什么吗?
Uncaught TypeError: Cannot read property '$v' of undefined
<script>
import Vue from "vue";
import Vuelidate from "vuelidate";
import { required, minLength, email, sameAs } from "vuelidate/lib/validators";
Vue.use(Vuelidate);
const hasUpperCase = (value) =>
value.match(/(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*\W)/);
export default {
validations: {
form: {
Email: {
required: required,
isEmail: email,
},
ConfirmEmail: {
required: required,
isEmail: email,
match: sameAs(this.$v.form.Email),
},
},
},
};
</script>我的Main.js
import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import vuetify from "./plugins/vuetify";
import Vuelidate from "vuelidate";
Vue.use(Vuelidate);
Vue.config.productionTip = false;
new Vue({
router,
store,
vuetify,
validations:{},
render: (h) => h(App)
}).$mount("#app");发布于 2020-12-21 10:00:42
首先,使用以下命令安装它:npm install vuelidate --save
我建议我们通过在您的src/main.js文件中导入它来全局定义它,如下所示
import Vuelidate from 'vuelidate';
Vue.use(Vuelidate)完成后,将您的验证器类导入到组件中:
import { required, minLength, email, sameAs } from "vuelidate/lib/validators";一种好的做法是在编写验证之前先定义数据模型,这样您就可以这样做:
data(){
return {
name:"",
email:"",
}
}现在,您可以继续定义您的验证
validations:{
name::{
required,alpha
},
email:{
required,email
}
}您需要做的最后一件事是在main.js文件中添加validations:{}。
https://stackoverflow.com/questions/65386444
复制相似问题