基本上,我有一个用户列表页面,其中包含一些其他配置文件,包括您自己的配置文件。只有在您自己的个人资料中才会显示一个按钮。
问题是当我从其他配置文件切换到我自己的配置文件(因此,路由器的参数正在改变)时,该按钮应该出现。反之亦然虽然有效(我的个人资料 - >另一个个人资料按钮消失了)。
现在,只有当我从另一个路由器切换时才会出现该按钮(例如,不是从其他某个配置文件切换而是将主页改为我自己的配置文件)。
<v-btn
v-if= "isUserProfile()"
outline
large
fab
v-on="on"
color="indigo">
<v-icon>edit</v-icon>
</v-btn>
在Profile.vue中使用观察程序,只要url / router param发生更改,就会查看
watch: {
'$route.params.username': {
immediate: true,
handler (value) {
this.username = value
this.getId()
this.isUserProfile()
}
}
},
使用这种方法,
isUserProfile () {
return (this.$store.state.route.params.username === this.$store.state.user.username)
},
因此,每当我从另一个配置文件切换到我自己的配置文件时,按钮应该出现,因为当我从我的配置文件切换到另一个配置文件时它会起作用。对于我的个人资料为“123123”的gif示例:
https://gyazo.com/cf47036bfb60cc6490c538e50a32db81
我在这里做的是手动切换网址上的参数从进入我的帐户,到另一个帐户切换回我的帐户。 (按钮在那里;好|不在那里;好的|按钮仍然没有应该在那里;不好。)
好的,所以答案很简单,因为我刚刚检查过,所以不需要修改使其成为计算值(我认为尽管如此,更好的做法是使其成为计算值)。
答案:而不是v-if:isUserProfile,使其成为v-show:isUserProfile;现在按钮会改变到完成的方式。
我现在将阅读https://vuejs.org/v2/guide/conditional.html以获得更多知识。