Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 为什么可以';t I在“颤振”的情况下,在膨胀板中加载实际数据;只有静态成员才能在初始值设定项“中访问”;?_Flutter_Dart - Fatal编程技术网

Flutter 为什么可以';t I在“颤振”的情况下,在膨胀板中加载实际数据;只有静态成员才能在初始值设定项“中访问”;?

Flutter 为什么可以';t I在“颤振”的情况下,在膨胀板中加载实际数据;只有静态成员才能在初始值设定项“中访问”;?,flutter,dart,Flutter,Dart,我把官方文件作为建立我自己的文件的参考。我很难让它们工作,也无法处理我的数据。我已经尝试将我的小部件接收到的一些数据传递到它的构造函数中,以便在生成面板列表时使用。我希望这些代码片段足够了,如果没有,我可以添加更多 这里是错误弹出的地方(当尝试引用widget.contracts时) class FinancialAbContent扩展StatefulWidget{ 最终合同清单; 最后一人旅行干事; 财务内容({this.contracts,this.travelOfficer}); @凌驾

我把官方文件作为建立我自己的文件的参考。我很难让它们工作,也无法处理我的数据。我已经尝试将我的小部件接收到的一些数据传递到它的构造函数中,以便在生成面板列表时使用。我希望这些代码片段足够了,如果没有,我可以添加更多

这里是错误弹出的地方(当尝试引用widget.contracts时)

class FinancialAbContent扩展StatefulWidget{
最终合同清单;
最后一人旅行干事;
财务内容({this.contracts,this.travelOfficer});
@凌驾
_FinancialAbContentState createState()=>\u FinancialAbContentState();
}
类_FinancialAbContentState扩展状态{
List expansionPanels=generateExpansionPanels(widget.contracts);
@凌驾
小部件构建(构建上下文){
...
这就是我打算用来构建面板列表的内容,它位于_financialaltabcontentState中

Widget _buildPanelList() {
    return ExpansionPanelList(
      expansionCallback: (int index, bool isExpanded) {
        setState(() {
          expansionPanels[index].isExpanded = !isExpanded;
        });
      },
      children: expansionPanels.map<ExpansionPanel>((ExpandableItem item) {
        return ExpansionPanel(
          headerBuilder: (BuildContext context, bool isExpanded) {
            ....
          isExpanded: item.isExpanded,
        );
      }).toList(),
    );
Widget\u buildPanelList(){
返回ExpansionPanelist(
expansionCallback:(int索引,bool扩展){
设置状态(){
expansionPanels[index].isExpanded=!isExpanded;
});
},
子项:expansionPanels.map((ExpansableItem){
返回扩展面板(
headerBuilder:(BuildContext上下文,bool isExpanded){
....
isExpanded:item.isExpanded,
);
}).toList(),
);
这是可展开项的代码

import 'contract.dart';

class ExpandableItem {
  ExpandableItem({    
    this.isExpanded = false,
    this.panelData
  });

  bool isExpanded;
  Contract panelData; 
}

List<ExpandableItem> generateExpansionPanels(List<Contract> panelsData) {
  return List.generate(panelsData.length, (int index) {
    return ExpandableItem(
      panelData: panelsData[index],
    );
  });
}
导入“contract.dart”;
类可扩展项{
可扩展项({
this.isExpanded=false,
这是panelData
});
布尔展开;
合同数据;
}
列表生成扩展面板(列表面板数据){
返回列表.generate(panelsData.length,(int索引){
返回可扩展项(
panelData:panelsData[索引],
);
});
}

将此行移动到
生成方法中:

List<ExpandableItem> expansionPanels = generateExpansionPanels(widget.contracts);
List expansionPanels=generateeexpansionpanels(widget.contracts);
或者,如果希望只执行一次,请在方法中执行此操作:

class _FinancialTabContentState extends State<FinancialTabContent> {
    List<ExpandableItem> expansionPanels;

    @override
    void initState() {
        super.initState();
        expansionPanels = generateExpansionPanels(widget.contracts);
    }

    @override
    Widget build(BuildContext context) {...}
}
class\u FinancialAbContentState扩展状态{
列出扩展面板;
@凌驾
void initState(){
super.initState();
expansionPanels=generateeexpansionpanels(widget.contracts);
}
@凌驾
小部件生成(BuildContext上下文){…}
}

阅读详细描述小部件生命周期的文档。

我自己尝试了第一件事,但面板无法展开(请再试一次,以防错过某些内容)。做构造函数的事情会给我同样的错误。尝试使列表非最终的,并将其分配到构造函数的主体上,而不是初始值设定项上。对不起,我很困惑。这是什么意思?getter“contracts”是在null上调用的。Receiver:null尝试调用:contracts这是我得到的抱歉,我也不擅长flift:)查看编辑后的答案,现在应该可以了…请务必阅读文档(答案中提供的链接),这样您就不会被这样的基本问题所困扰。
class _FinancialTabContentState extends State<FinancialTabContent> {
    List<ExpandableItem> expansionPanels;

    @override
    void initState() {
        super.initState();
        expansionPanels = generateExpansionPanels(widget.contracts);
    }

    @override
    Widget build(BuildContext context) {...}
}