Flutter 使用无状态小部件创建简单随机化程序时出错。实例成员可以';不能在初始值设定项中访问

Flutter 使用无状态小部件创建简单随机化程序时出错。实例成员可以';不能在初始值设定项中访问,flutter,dart,statelesswidget,Flutter,Dart,Statelesswidget,我试图创建一个非常简单的生成器,其中“是”、“否”或“可能”出现在这个(无状态)水晶球中 这是我的代码: import 'dart:html'; import 'package:flutter/material.dart'; import 'dart:math'; void main() => runApp( MaterialApp(home: MyApp()), ); class MyApp extends StatelessWidget { @overr

我试图创建一个非常简单的生成器,其中“是”、“否”或“可能”出现在这个(无状态)水晶球中

这是我的代码:

import 'dart:html';

import 'package:flutter/material.dart';
import 'dart:math';

void main() => runApp(
      MaterialApp(home: MyApp()),
    );

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Welcome to Flutter',
      home: Scaffold(
        backgroundColor: Colors.white,
        appBar: AppBar(
          title: Text('Welcome to Flutter'),
        ),
        body: Center(
          child: Image.asset('images/blu.png'),
        ),
      ),
    );
  }
}

class picker extends StatefulWidget {
  @override
  _pickerState createState() => _pickerState();
}

class _pickerState extends State<picker> {
  List yourList = ["Yes", "No", "Maybe"];
  int randomIndex = Random().nextInt(yourList.length);

  @override
  Widget build(BuildContext context) {
    return Center(
      child: TextButton(
        onPressed: () {
          setState(() {
            print(yourList[randomIndex]);
          });
        },
        child: null,
      ),
    );
  }
}
导入'dart:html';
进口“包装:颤振/材料.省道”;
导入“dart:math”;
void main()=>runApp(
MaterialApp(主页:MyApp()),
);
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“欢迎来到弗利特”,
家:脚手架(
背景颜色:Colors.white,
appBar:appBar(
标题:文本(“欢迎光临颤振”),
),
正文:中(
子项:Image.asset('images/blu.png'),
),
),
);
}
}
类选择器扩展StatefulWidget{
@凌驾
_pickerState createState();
}
类_pickerState扩展状态{
列出你的清单=[“是”、“否”、“可能”];
int randomIndex=Random().nextInt(yourList.length);
@凌驾
小部件构建(构建上下文){
返回中心(
孩子:文本按钮(
已按下:(){
设置状态(){
打印(您的列表[随机索引]);
});
},
child:null,
),
);
}
}
但它显示此错误,不允许我热重新加载:

无法在初始值设定项中访问实例成员“yourList”。


此外,我还添加了child:null,因为该参数是必需的。

您需要在
构造函数中调用
yourList
,如下所示:


class _pickerState extends State<picker> {
  List yourList = ["Yes", "No", "Maybe"];

 int randomIndex;


 _pickerState() {
     randomIndex = Random().nextInt(yourList.length);
  }

...

类_pickerState扩展状态{
列出你的清单=[“是”、“否”、“可能”];
int随机指数;
_pickerState(){
randomIndex=Random().nextInt(yourList.length);
}
...

如果答案有帮助,您可以向上投票:)