首页 > 解决方案 > Flutter 如何在另一个页面上的点击事件中从 ListTile 恢复数据

问题描述

我想在另一个页面上恢复数据,就我而言,是一条鱼的学名,以便我可以从数据库中调用所需的数据并显示它。问题是,我不知道我做得对不对。我尝试使用快照,但它没有从数据库中返回任何内容。


class _DatabaseState extends State<Database> {
  List fishList = List();
  getAllFish() async {
    var response =
        await http.get("http://192.168.43.202/maupoisson/getfish.php");
    if (response.statusCode == 200) {
      setState(() {
        fishList = json.decode(response.body);
      });
      print(fishList);
      return fishList;
    }
  }

  void initState() {
    super.initState();
    getAllFish();
  }

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
        appBar: new AppBar(
          title: new Text(widget.title),
        ),
        body: ListView.builder(
            itemCount: fishList.length,
            itemBuilder: (context, index) {
              return ListTile(
                leading: CircleAvatar(
                  radius: 30.0,
                  /*child: new Image.asset(
                      "assets/images/$fishList[index]['pic_name']"),*/
                  backgroundImage: ExactAssetImage(
                      "assets/images/$fishList[index]['pic_name']"),
                ),
                title: Text(fishList[index]['scientific_name']),
                subtitle: Text(fishList[index]['species']),
                onTap: () {
                  Navigator.push(
                      context,
                      new MaterialPageRoute(
                          builder: (context) =>
                              DetailPage(fishList[index]['scientific_name'])));
                },
              );
            }));
  }
}

标签: flutter

解决方案


推荐阅读