flutter - 使用无状态小部件创建简单的随机化器时出错。实例成员无法在初始化程序中访问

标签 flutter dart statelesswidget

我正在尝试创建一个非常简单的生成器,在此(无状态) Crystal 球中出现"is",“否”或“也许”。
enter image description here
这是我的代码:

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,
      ),
    );
  }
}
但是它显示了此错误,不会让我热重新加载它:
无法在初始化程序中访问实例成员“yourList”。
另外,我添加了child:null,因为该参数是必需的。

最佳答案

您需要像这样在yourList中调用constructor:


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

 int randomIndex;


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

...

关于flutter - 使用无状态小部件创建简单的随机化器时出错。实例成员无法在初始化程序中访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64448247/

相关文章:

dart - 如何在 Fluro 或 Flutter 路由导航器中传递对象或对象列表?

android - flutter 安装 .apk 版本应用程序卡在黑屏上

javascript - 如何以 Dart 语言将变量完全转储/打印到控制台?

flutter - 为子窗口小部件选择 StatelessWidget 或 StatefulWidget,子窗口小部件具有 TextEditingController 作为子窗口小部件

dart - Flutter:在 StatelessWidget 中哪里添加监听器?

android - flutter/FireStore : how to display an image from Firestore in Flutter?

flutter - 排除某些文件/库以在Flutter Web中构建

dart - Google Dart 对方法和属性的可见性

dart - 我可以动态应用 Dart 的字符串插值吗?

android - state as class 是否需要 SatefulWidget?