gpt4 book ai didi

dart - 从方法访问 Map 对象到构建方法

转载 作者:IT王子 更新时间:2023-10-29 07:06:17 25 4
gpt4 key购买 nike

我真的是 Flutter 的新手,我认为自己是 Dart 世界的初学者。

我有一个本地 json 文件,我想在我的 flutter 应用程序上显示它的内容。

这是我的 json 示例:

{
"apple": {"color": "red", "tasty": "yes"},
"banana": {"color": "yellow", "tasty": "nope"}
}

所以每次创建小部件时,我还使用 initState 方法加载 json 文件并解码,然后将其存储在名为 fruits 的 Map 对象中。像这样:

Future<Null> loadJson() async {
var myJson = await rootBundle.loadString("files/fruits.json");
Map<String, dynamic> fruits = json.decode(myJson);
}


@override
void initState(){
super.initState();
loadJson();
}

我的问题是每当我调用 Map 对象 fruits 时:

new Text("""${fruits["banana"]['color']}""")

报错:

Error: Getter not found: 'fruits'.

为什么我不能从方法访问 Map 对象?提前致谢。

最佳答案

fruits 是一个局部变量。所以在 loadJson 方法之外是不可访问的。

让它成为状态变量

class YourStateClass extends State<YourStatefulWidget> {
Map<String, dynamic> fruits; //state variable

Future<Null> loadJson() async {
var myJson = await rootBundle.loadString("files/fruits.json");
fruits = json.decode(myJson);
setState(() {}) // you might need this as it is async
}

@override
void initState(){
super.initState();
loadJson();
}
....
}

关于dart - 从方法访问 Map 对象到构建方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52129010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com