我一直在寻找类似的问题,但不明白我的问题是什么。
我正在调用service.getUsers()
。并成功获取数据。但我在调试代码时注意到this.userList
是undefined
(如图所示)。我的问题是我无法识别userList
,它显示为ERROR TypeError: this.userList is not iterable
但是在HTML中,我使用userList
作为表的资源。我可以看到我从DB中获取的数据。那么,如果数据未定义且不可迭代,我如何看到这些数据呢?我需要在同一个类中使用userList
for循环。
的数据
this.service.getUsers().subscribe(data => { this.userList = data; });
testFunction() {
for (let user of this.userList) {
this.selectedUserList.push(user);
}
}
字符串
3条答案
按热度按时间7vhp5slm1#
谢谢大家我想出来了
字符串
我在订阅中调用的函数工作正常。
dzhpxtsq2#
如果你在订阅数据后调用testFunction(),那么你将不会得到这个.userList作为undefined。但否则你会得到。
这是因为getUsers()返回一个observable(因为你订阅了它),而observable是异步的。所以当getUsers()完成执行并返回数据时,该控件已经到达了testFunction()。由于前一个函数还没有返回,变量this.userList肯定是未定义的。
字符串
yhuiod9q3#
如果你在React中工作,有时你会得到这个错误,因为你想把来自服务器数据数组保存在useState变量中,然后你用useState变量在前端显示数据。
示例问题:
字符串
所以当你使用时间表变量显示数据时,你会得到迭代错误。
解决方法:
型
通过这样做,useEffect函数在加载后有数据时将数据分配给useState变量。