我在获取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
}
答案 0 :(得分:0)
要使用 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
在您的模板上使用它。