在vue3页面中想要遍历在data中定义的数组,没有做JSON数据处理,然后用forEach方法就一直报错......网上查找了很多相关错误,有些是说命名敏感,还有数据没做JSON转化,或是要用异步处理.......试了各种方法发现都不能解决。不过从下面报错可以看出就是我的数组类型不符合forEach的标准,所以才不能遍历,可是尝试定义标准数组还是出现这种错误。

const numberArr = ref(["1","2","3","4"])
    numberArr.forEach((item, index) => {
    console.log(item);
            
})

尝试了很多遍,试着定义数组不使用ref或是reactive去处理就成功了。但我不是很清楚vue3对这个ref等方法的处理导致自定义的数组不能够进行遍历。

const numberArr = ["1","2","3","4"]
//删除了ref就成功了
    numberArr.forEach((item, index) => {
    console.log(item);
            
})

反正如果是前端做假数据就可以直接在方法中定义,如果是接口导入数据就要检查一下接口传入的数据格式,一般接口数据传来的都是处理好的JSON数据,不会出现这种离谱的报错。

如果有大佬清楚这个原理,欢迎下面留言。


这个问题后面有去问朋友,forEach不能使用很有可能跟vue的属性有关,如果是ref、toRef或是导出来的假数据,想要使用forEach方法必须加.value才能对里面的值进行遍历。因为vue会封装我们的数据,forEach不加.value格式就不对,遍历不到值。但是如果是reactive([数组]),就不需要加.value就可以遍历。

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐