<div class="input-wrapper" id="name" :data-text="name" :class="{ error: error.isErrorName }">
<input type="text" name="name" placeholder="Name…" @input="inputName($event.target.value)">
</div>
data () {
return {
name:'',
error:{
isErrorName:false,
isErrorEmail:false,
isErrorSubject:false,
isErrorMessage:false
},
}
},
methods:{
inputName(val){
this.name=val;
this.error.isErrorName = !val.trim();
}
}
[Vue warn]:属性或方法“index”未在实例上定义,但在呈现期间引用。通过初始化属性,确保此属性在数据选项或基于类的组件中是被动的。
答案 0 :(得分:0)
假设您正试图避免该警告,以解释幕后发生的事情see this post。
要删除您的案例中的警告,请尝试如下:
HTML模板
使用v-model
将变量传递给方法,并删除($event.target.value)
和@input
以简洁(请参阅Using-v-model-on-Components)。例如,您将它绑定到数据属性name
,并且如果您希望每次用户按下某个键时运行该inputName
方法:
<input type="text" name="name" placeholder="Name…" v-model="name" @keyup="inputName">
<强>脚本强>
然后,您不需要将其添加为
的参数methods: {
inputName(){
// this.name=val;
this.error.isErrorName = !(this.name.trim());
}
}
P.S:如果你有一个更明显的目标,我试着读懂你的想法。请在问题中分享;)