为什么函数不能在flit中的initState(){super.initState()}中被调用,但是如果稍后在同一页面中调用,则可以正常工作吗?

问题描述 投票:0回答:1
我有一个名为splitVendorMainCategory的函数,该函数将一个List分为两个子List,描述如下:

List vendorMainCategory = ['one', 'two', 'three', 'four']; Future splitVendorMainCategory() async { for (int i=0; i< (vendorMainCategoryLength); i+=2){ vendorMainCategoryC1.add(vendorMainCategory[i]), }, for(int j = 1; j < vendorMainCategoryLength; j+=2){ vendorMainCategoryC2.add(vendorMainCategory[j]), } }

而且我在页面初始化时就调用它,但是它返回两个空的子列表,而List VendorMainCategory包含元素。我将该函数称为:

@override initState() { splitVendorMainCategory(); super.initState(); }

但是,当我在同一页面的'body'中调用相同的函数时,它返回预期的结果。

vendorMainCategoryC1 = [one, three] vendorMainCategoryC2 = [two, four]

可能导致该函数在页面初始化时不被调用,但是当在另一个小部件中调用时使其完全正常工作的原因是什么?当我尝试以任何一种方式运行它时,都不会抛出任何错误,只是我得到了两个不同的结果。任何帮助将不胜感激。

我有一个名为splitVendorMainCategory的函数,该函数将一个List分为两个子列表,描述如下:List vendorMainCategory = ['one','two','three','four'];将来的splitVendorMainCategory(...

flutter function-call
1个回答
0
投票
@override initState() { super.initState(); splitVendorMainCategory(); }
© www.soinside.com 2019 - 2024. All rights reserved.