想知道如果有人在這裏可以幫助嗎?HttpRequest.getString打錯誤函數,即使其成功
採用高分子達特我已經成立了一個服務使用下面的代碼加載一個JSON提要:
Future loadService(){
return HttpRequest.getString(_serviceURL)
.then(buildView)
.catchError(handleError);
}
當這段代碼執行時,它成功地擊中了我的buildView功能,但我也越來越從我的把手誤差函數打印出一個錯誤:
void handleError(Error error){
print(error);
}
我有我的JSON飼料3項:
[
{
"module": "module-1",
"data": {
"title": "Dynamic Title 1",
"text": "This is the dynamic text for content block 1."
}
},
{
"module": "module-2",
"data": {
"title": "Dynamic Title 2",
"text": "This is the dynamic text for content block 2."
}
},
{
"module": "module-3",
"data": {
"title": "Dynamic Title 3",
"text": "This is the dynamic text for content block 3."
}
}
]
我得到的錯誤是:「RangeError:3」。
我無法找到很多關於可能導致此問題的信息。它似乎不妨礙我的應用程序,但我想盡可能將其清除。如果任何人有任何建議,我都耳熟能詳。
謝謝!
編輯:按照建議通過岡特Zöchbauer
現在我明白了.catchError()函數從。那麼()函數捕捉錯誤。我認爲它只會在HttpRequest本身失敗時發現錯誤。
在buildView我使用的是像這樣遍歷JSON對象循環:
void buildView(String jsonString){
contentBlocks = JSON.decode(jsonString);
DivElement wrapper = $['content-modules-wrapper'];
for(int i=0; i < contentBlocks.length; i++){
Element element = new Element.tag(contentBlocks[i]['module']);
wrapper.children.add(element);
}
}
哪項是錯誤的,因爲需要。長度JSON字符串的長度(300個字的東西),我認爲這是一個有點奇怪的,因爲我已經將其轉換爲對象。不管怎麼樣,我改變功能,以這個固定:
void buildView(String jsonString){
contentBlocks = JSON.decode(jsonString);
DivElement wrapper = $['content-modules-wrapper'];
contentBlocks.forEach((block){
Element element = new Element.tag(block['module']);
wrapper.children.add(element);
});
}
是否有一種方式來獲得的項目數量在JSON對象像我想做或應該總是使用forEach()來循環訪問它?