如何解决异步安装的钩子正在等待Feathers-Vuex的使用
我在获取books.value
中的数组以登录到控制台时遇到了一些麻烦。即使等待useFind
函数之后,它仍然不会返回任何结果。我已经确认存在传递给查询的值的结果。如果在不刷新浏览器的情况下更改了代码,则console.log
将起作用。我在做什么错了?
import { useFind } from "feathers-vuex";
async mounted() {
const { Book } = this.$FeathersVuex.api;
const pathBody = this.$route.path.split("/")[1];
const bookParams = computed(() => {
return {
query: {
referral_link: pathBody
}
};
});
const { items: books } = await useFind({
model: Book,params: bookParams
});
console.log(books.value); // empty array
}
解决方法
要使用 useFind
,您需要使用 vue 可组合 api 而不是普通的函数/选项。
它应该是这样的:
export default {
component: 'PageName',setup(_,{ root }) {
const { Book } = root.$FeathersVuex.api;
const pathBody = root.$route.path.split("/")[1];
const bookParams = computed(() => {
return {
query: {
referral_link: pathBody
}
};
});
const { items: books } = await useFind({
model: Book,params: bookParams
});
return {
books
}
}
}
此外,mounted
上的数据也不会存在,因为实际获取需要时间。除了返回的 isPending
之外,您还可以添加 items
。然后使用 v-if
在您的模板上使用它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。