vue.js - Vue Composition API:安装回设置中的初始化变量
问题描述
我尝试了新的组合 API。
可组合函数 useProdcut.js:
export default function useProduct() {
const product = reactive({});
async function getProduct(id) {
try{
const response = await {{http Request}}
product.value = response.data; // it is a single object
}catch(err) {
console.log(err);
}
}
return {product, getProduct}
}
在我的组件中,我使用了两个可组合的函数:
setup(_, {root}) {
…
const { product, getProduct} = useProduct();
const {productAlias, productTitle, createdAt, …} = useProductDetails(prodcut);
onBeforeMount(async () => {
loading.value = true;
await getProduct(root.$route.params.id);
loading.value = false;
});
return {loading, product, productAlias, …}
}
在 useProductDetails.js 中,我收到了以下消息:
product.value 未定义。
我认为这是因为在 onBeforeMount 中检索了产品的值。但是我怎样才能实现在安装后传递具有价值的产品参考呢?还是有其他方法?
我很感激任何帮助。谢谢!
解决方案
const product = reactive({});
product 应该是ref
而不是reactive
,因为我重新分配了整个对象。
Whenproduct
被重新分配给response.data
哪个是新对象,因此它不再引用旧的反应对象。在这里查看更多。
推荐阅读
- python - 检查字典字典中是否存在值并获取键?
- java - JSP应用程序中集成vaadin视图的问题
- zapier - 如何在 zapier 的测试用例中检查响应的状态码
- regex - 如何使用正则表达式从 URL 获取 PATH?
- php - 我想将两个参数传递给 URL
- javascript - 在 Create React App 中为节点模块添加自定义 Typescript 类型声明
- android - 我如何知道将为我的设备加载哪些资源?
- vb.net - 使用 linq 的 orderby 和 thenby 关键字,我可以按行对矩阵进行排序吗?
- python - 在 TensorFlow 2.0 中的层之间共享权重
- graphql - graphQl - 全部返回 db