【问题标题】:Flutter: Load JSON data automatically StatefulWidgetFlutter:自动加载 JSON 数据 StatefulWidget
【发布时间】:2019-09-16 00:15:08
【问题描述】:

我正在尝试自动将 json 数据分配给列表,而无需按下按钮,然后调用方法。

为简单起见,这是我的方法:

_fetchData() async {
    final response = 
    await http.get("https://jsonplaceholder.typicode.com/photos");
    if (response.statusCode == 200) {
      list = json.decode(response.body) as List;
    } else {
      throw Exception("Failed to load data");
    }
  }

我有一个带有变量“list”的 StatefulWidget,在 build 方法中,返回一个列表构建器,然后使用列表中的数据。

我该怎么做?谢谢。

【问题讨论】:

    标签: json flutter dart android-asynctask


    【解决方案1】:

    您需要在 initState 中调用您的方法。这里重要的一点是触发小部件重建的 setState()。

    这是一个例子:

      class _PhotosWidgetState extends State<PhotosWidget> {
        List<dynamic> photos = [];
    
        @override
        void initState() {
          super.initState();
          setState(() {
            photos = _fetchData();
          });
        }
    
        List<dynamic> _fetchData() async {
          final response =
              await http.get("https://jsonplaceholder.typicode.com/photos");
          if (response.statusCode == 200) {
            return json.decode(response.body) as List;
          } else {
            throw Exception("Failed to load data");
          }
        }
    
        @override
        Widget build(BuildContext context) {
          return [....your list builder here....];
        }
      }
    

    【讨论】:

      猜你喜欢
      • 2020-02-25
      • 2021-04-08
      • 2020-04-11
      • 2021-01-13
      • 1970-01-01
      • 2021-11-15
      • 1970-01-01
      • 2020-02-18
      • 1970-01-01
      相关资源
      最近更新 更多