0 javascript pagination reactjs
有没有人知道为什么我没有在这个循环中定义?我想不明白...
我试图通过从API接收数据的页面进行分页,并都聚集到一个数组,并将其存储在状态,但我对循环似乎并不奏效,因为错误的:"没有定义我"
我该怎么办呢?
gatherAllCharacters = () => {
fetch(`https://rickandmortyapi.com/api/character/`)
.then(res => res.json())
.then(data => {
let characters = data.results;
const totalPages = data.info.pages;
if (totalPages > 1) {
for (i = 2; i <= totalPages; i++) {
let page = i;
fetch(`https://rickandmortyapi.com/api/character/?page=${i}`)
.then(res => res.json())
.then(data => {
characters = characters.concat(data.results);
if (page === totalPages) {
this.setState({ allCharacters: characters });
}
});
}
} else {
console.log("none");
}
});
};
Run Code Online (Sandbox Code Playgroud)
小智 6
你可以像上面那样创建一个for循环
for (i = 2; i <= totalPages; i++) {
//perform loop
}
Run Code Online (Sandbox Code Playgroud)
然而,这会在全局命名空间中生成变量i,这通常是一个坏主意.
因此你应该在使用它之前初始化我:
for (let i = 2; i <= totalPages; i++) {
//perform loop
}
Run Code Online (Sandbox Code Playgroud)
因此,ECMA决定采用这种方式(以及我的其他可能导致不良副作用的功能会引发错误).
在这里查看更多https://www.w3schools.com/js/js_strict.asp
当您的应用程序处于使用严格模式时,它将抛出错误"我未定义"
记得在使用之前初始化任何变量!
结合你应该了解的事情let和var
var并且let可以改变它们的值并且const不能改变它的值var可以在功能上随时随地访问,但let并const只能在那里它们被声明的块内访问.| 归档时间: |
|
| 查看次数: |
121 次 |
| 最近记录: |