Vue.js V-model给出:V-on处理程序中出现错误:“0”;TypeError:x27的右侧;在';应该是一个对象,得到null“;具有计算功能
我有一个Vuetify组件,它根据vuex值进行切换 组成部分:Vue.js V-model给出:V-on处理程序中出现错误:“0”;TypeError:x27的右侧;在';应该是一个对象,得到null“;具有计算功能,vue.js,Vue.js,我有一个Vuetify组件,它根据vuex值进行切换 组成部分: <v-navigation-drawer app floating color="#F5F7F8" :mini-variant.sync="this.toggleMini" width="240" v-model="this.mobileToggle" :permanent="$vuetify.breakpo
<v-navigation-drawer
app
floating
color="#F5F7F8"
:mini-variant.sync="this.toggleMini"
width="240"
v-model="this.mobileToggle"
:permanent="$vuetify.breakpoint.mdOnly"
:temporary="$vuetify.breakpoint.smAndDown"
v-click-outside="this.overlayToggle"
v-if="this.setUser"
>
</v-navigation-drawer>
贮藏
解决方法,因为如果单击导航覆盖,状态不会更新。(这也被称为已创建)
它在移动设备上工作,但是如果我调整屏幕大小,或者使用开发工具,我会得到:v-on处理程序中的错误:“TypeError:'in'的右侧应该是一个对象,get null”
onv-model=“this.mobileToggle”
据我所知,这件事没有什么牵连。mobileToggle也不是空的,它是假的。您的v型模型是这种模式的一种转换:
:value="this.mobileToggle"
@input="this.mobileToggle = $event"
您的计算机在这里没有设置器
只需这样修改它:
mobileToggle: {
get(){
if (this.$store.getters.g_mobileDrawer === !null) {
return this.$store.getters.g_mobileDrawer;
}
return false;
},
set(newMobileToggle){
// your action to mutate g_mobileDrawer
}
},
如果您不希望导航抽屉变异g_mobileDrawer,那么将v-model替换为:valueg_mobileDrawer的值是多少?
g_mobileDrawer
?您的条件是错误的,您应该执行类似于(this.$store.getters.g_mobileDrawer!==null)
@Boussadjrahim好的,更改了。g_mobileDrawer是真的。没有setter,因为我的变异在菜单切换的标题组件中。Tbh我不知道你的错误是否与计算的错误有关。但是这样做:this.mobileToggle=$event应该触发一个错误。您是否尝试过使用:value而不是v-model?是的,行为不会改变。
overlayToggle() {
// workaround for close on overlay click on mobile, otherwise state isn't updated.
if (this.$vuetify.breakpoint.smAndDown && this.mobileToggle === true) {
this.$store.commit('mobileToggle');
}
},
:value="this.mobileToggle"
@input="this.mobileToggle = $event"
mobileToggle: {
get(){
if (this.$store.getters.g_mobileDrawer === !null) {
return this.$store.getters.g_mobileDrawer;
}
return false;
},
set(newMobileToggle){
// your action to mutate g_mobileDrawer
}
},