<script setup>
import { ref, onMounted, onBeforeMount ,reactive ,computed} from 'vue';
import { useRoute } from 'vue-router';
import ApiService from '../../services/api.service';
const route = useRoute();
const productId = route.params.productId;
const products = ref([]);
const obj = reactive(products);
onMounted(() => {
ApiService.getProduct().then((data) => (products.value = data));
});
const searchedProducts =computed( () => {
obj.filter(product => productId.includes(product.productId))
});
console.log(searchedProducts);
</script>
<template>
<p>datas {{searchedProducts}}</p>
</template>
onMounted以获取所有记录,然后计算searchedProducts fillter productId wise,但{{searchedProducts}}未显示,在控制台中出现错误未捕获(在承诺中)TypeError:obj.filter不是函数
2条答案
按热度按时间dwbf0jvd1#
您可以这样使用它:
rryofs0p2#
你得到这个错误的原因是你在
reactive()
里面 Package 了一个ref()
,而没有使用一个对象,所以你需要添加一个.value
来使它像下面这样工作。但您可能希望像下面的示例那样执行此操作,以使
ref()
值展开:还有两点需要指出:
1.您正在使用
.includes()
比较产品ID。使用严格的比较会更可靠。1.你忘了一个return语句。