【发布时间】:2021-02-11 15:23:42
【问题描述】:
在 cats.dart 页面上我有:
class Cats{
String name;
String gender;
int age;
Cats({this.name, this.gender, this.age});
setData(list){
for(int i = 0; i < l.length; i++){
name = list[0];
gender = list[1];
age = list[2];
}
}
}
然后我在一个名为 kitty.dart 的页面上:
import: 'cats.dart';
List<String> cat = ["fluffy","female",3];
class Kitty extends StatefulWidget {
@override
_Kitty createState() => _Kitty();
}
class _Kitty extends State<Kitty> {
Cats kitten;
String data = '';
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Cats'),
),
body:
Column(
children: [
Text(
data, style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
),
FlatButton(
onPressed: (){
kitten.setData(cat);
setState(() {
data = kitten.name;
});
},
child: Text('Get Data', style: TextStyle(fontSize: 20),
),
),
],
),
);
}
}
和通常的 main.dart:
import: 'kitty.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData.light(),
debugShowCheckedModeBanner: false,
home: Kitty(),
);
}
}
...它甚至看起来很傻,但我已经尝试并无法弄清楚...它说的是
在 null 上调用了方法“setData”。 接收方:空 尝试调用:setData(Instance(length:3) of '_GrowableList')
任何帮助将不胜感激...
【问题讨论】:
-
你好,可以分享
XWordTile类的代码吗? -
你从未初始化
xwordtile,所以它是null。有关说明,请参阅链接。 -
@YakhyoMashrapov 抱歉,我错过了...编辑了代码..
-
@nvoigt 也道歉...当我复制真实代码时出错...错过了...
-
那么,你在哪里初始化
kitten?