【问题标题】:Flutter PhpMyAdmin Fetch DataFlutter PhpMyAdmin 获取数据
【发布时间】:2021-12-18 14:25:45
【问题描述】:

我想从 PhpMyAdmin 获取数据。但我面临一个问题。我可以在正文中看到我的数据。我正在分享我的源代码。谢谢帮助。我正在使用颤振桌面。

import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;

class WarehousePage extends StatefulWidget {
  const WarehousePage({Key key}) : super(key: key);

  @override
  _WarehousePageState createState() => _WarehousePageState();
}

class _WarehousePageState extends State<WarehousePage> {
  List data = [];

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

  void fetchData() async {
    final response =
        await http.get(Uri.parse('url/getdata.php'));

    data = json.decode(response.body);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: ListView.builder(
        itemCount: data.length,
        itemBuilder: (BuildContext context, int index) => ListTile(
          title: Text(data[index]['productName']),
        ),
      ),
    );
  }
}

更新我的代码,但还是一样。怎么了?我没有任何模型课。我在正文和调试控制台中看到了我的数据。但我不能把它写在列表视图中。

import 'dart:convert';
import 'dart:io';

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;

class WarehousePage extends StatefulWidget {
  const WarehousePage({Key key}) : super(key: key);

  @override
  _WarehousePageState createState() => _WarehousePageState();
}

class _WarehousePageState extends State<WarehousePage> {
  List data = [];

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

  Future<List> fetchData() async {
    var jsonResponse;
    try {
      var url = Uri.parse('https://rul/getdata.php');
      var response = await http.get(url).timeout(const Duration(seconds: 20));
      if (response.statusCode == 200) {
        jsonResponse = json.decode(response.body);
        if (jsonResponse != null) {
          return (json.decode(response.body) as List)
              .map((data) => (data))
              .toList();
        }
      }
    } on SocketException catch (e) {
      print(e);
    } catch (e) {
      print(e);
    }
    return jsonResponse;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: ListView.builder(
        itemCount: data.length,
        itemBuilder: (BuildContext context, int index) => ListTile(
          title: Text(data[index]['productName']),
        ),
      ),
    );
  }
}

【问题讨论】:

    标签: flutter flutter-desktop


    【解决方案1】:
    static Future<List<SomeModel>> fetchQuizTest() async {
    var jsonResponse;
    try {
      var url = Uri.parse(url');
    
      var response = await http.get(url).timeout(const Duration(seconds: 20));
      if (response.statusCode == 200) {
        jsonResponse = json.decode(response.body);
    
        if (jsonResponse != null) {
          return (json.decode(response.body) as List)
              .map((data) => new SomeModel.fromJson(data))
              .toList();
        }
      }
    } on SocketException catch (e) {
      print(e);
    
    } catch (e) {
     
      print(e);
    }
    return jsonResponse;
    

    }

    【讨论】:

    • 您需要先声明模型并使用此代码解析数据...
    • 还是一样。更新我的问题。怎么了?
    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    • 数据 = json.decode(response.body);而不是这个使用 this (json.decode(response.body) as List) .map((data) => (data)) .toList();
    • 还是一样。发生异常。 _TypeError(类型 '_InternalLinkedHashMap' 不是类型 'FutureOr>' 的子类型)
    猜你喜欢
    • 1970-01-01
    • 2016-04-01
    • 2021-01-14
    • 2021-07-20
    • 2020-10-11
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多