【解决Vue错误([Vue warn] Error in render RangeError Invalid array length)】Vue版本:v2.*
在vue项目中使用v-for并使用属性计算computed出错:
Computed如下:
computed: {
numberOfPages() {
const result = Math.ceil(this.collection.total / this.collection.per_page)
return (result <
1) ? 1 : result
}
},
Template如下:
<
li class="waves-effect" v-for="(number,index) in numberOfPages"
:key="index" :class="collection.current_page == number ? 'active' : ''"
@click="currentPage(number)">
<
a class="">{{number}}<
/a>
<
/li>
控制台错误输出:
[Vue warn]: Error in render: "RangeError: Invalid array length"
RangeError: Invalid array length
解决办法详解
最可能出现的问题是,计算的属性返回NaN或Infinity。如果不查看所有代码,最有可能的原因是以下原因之一:
- 将集合初始化为空对象,const result=Math.ceil(undefined / undefined),这将返回NaN。
- 可以正确地防止在结果到来之前计算属性,但是来自填充集合的服务器的响应的per_page为0。上面提到的计算将返回无穷大,而Vue将无法创建一个范围。
否则,如果要计算的数据实际上是正确的,则可以检查computed属性,否则返回默认值。
推荐阅读
- 解决问题(Failed to load resource the server responded with a status of 404 (Not Found))
- 解决Vue问题([Vue warn] Avoid mutating a prop…Prop being mutated list (found in component ))
- 解决Vue问题(Uncaught ReferenceError Vue is not defined)
- 解决vue-cli安装错误(npm ERR! A complete log of this run can be found in npm ERR!)
- 前端CSS(实现CSS集合)
- PHP date_default_timezone_set()函数用法详解
- 算法设计(在按行排序的矩阵中找到中位数)
- PHP atanh()函数用法介绍
- PHP fread()函数用法介绍