【发布时间】:2021-01-03 07:34:49
【问题描述】:
我正在 vue.js + firebase 中开发一个类似 Messenger 的应用程序。我想做的是 - 在每次路由更改时,从 db 中获取一些对应于 id(存储在路由中)的数据,然后将其显示在屏幕上。我在处理这些数据时遇到了一些奇怪的行为,但它并没有按预期工作。
代码:
methods: {
getRoomName() {
db.collection("rooms")
.doc(this.params)
.onSnapshot((snapshot) => (this.roomName = snapshot.data().name));
},
},
watch: {
$route(to, from) {
this.getRoomName();
},
},
数据在哪里:
data() {
return {
input: "",
roomName: "",
params: this.$route.params.id,
message: "",
roomNameTest: "",
};
},
模板:<span class="roomName">{{roomName}}</span>
【问题讨论】:
-
您能否详细说明“奇怪的行为”究竟是什么意思?我注意到的第一件事是您在 data() 处调用 this.$route,它不起作用。如果您需要填充某些内容,请尝试使用 Vue vuejs.org/v2/guide/instance.html#Instance-Lifecycle-Hooks
-
我一删除数据中的 this.$route 并将其直接移动到函数中,它就开始按预期工作。谢谢!
-
我会详细说明一个答案,请接受它以帮助其他人:)
标签: javascript firebase vue.js google-cloud-firestore vuefire