上下文:我试图使用存储在缓存中的会话ID发送请求.

我能够显示缓存的会话ID,但当我try 使用缓存的会话ID发送请求时,我收到了以下错误:"未处理的异常:类型‘Future’不是类型转换中类型‘String’的子类型"

谢谢你的帮助!

以下是我正在使用的代码:

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

class messageBoard extends StatefulWidget {
   messageBoard({Key key}) : super(key: key);
   
  @override
  State<messageBoard> createState() => _messageBoardState();
}

class _messageBoardState extends State<messageBoard> {

  final _sessionIDController = ReadCache.getString(key: "cache");

  void messageBoardReq() async {

    var map = <String, dynamic>{
      "SessionID": _sessionIDController,
    };

    var res = await http.post(
      Uri.parse("http://192.168.1.8:8080/HongLeong/MENU_REQUEST.do"),
      body: map,
    );

    final data = jsonDecode(res.body);
    print(data);

  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,
      body: Column(
        children: [
          Center(
            child: CacheManagerUtils.cacheTextBuilder(
            textStyle: TextStyle(color: Colors.black), cacheKey: "cache"),
          ),
          RawMaterialButton(
            onPressed: () {
              messageBoardReq();
            },
            elevation: 2.0,
            fillColor: Colors.white,
            padding: const EdgeInsets.all(15.0),
            shape: const CircleBorder(),
            child: const Icon(
              Icons.forum,
              size: 35.0,
            ),
          ),
        ],
      )
    );
  }
}

推荐答案

缺少await来从Future中获取值.

应该是这样的:

    var map = <String, dynamic>{
      "SessionID": await _sessionIDController, // <- Here
    };

Flutter相关问答推荐

Flutter bloc -如何使用BlocBuilder?

如何在Flutter的easy_translation包中链接嵌套的链接翻译?

如何更改ElevatedButton的 colored颜色 以按下它?

Build.gradle专线:2个Flutter Flutter

下拉图标未居中

有没有方法可以从当前时间轻松计算TimeStamp?

如何翻转这种剪刀设计

为Android生成时出现Flutter 错误:给定资源值的<;COLOR&>无效

如何在 Flutter 中以背景 colored颜色 制作圆圈的一部分

即使小部件比Flutter 中的屏幕更宽,也始终显示滚动条

无状态和有状态小部件,我可以同时使用吗?

通过在父窗口小部件功能上设置状态来浏览屏幕

Flutter Firebase 升级后出现问题? ARC 语义问题 (Xcode): Select 器appleCredentialWithIDToken:rawNonce:fullName:没有已知的类方法

Flutter url_launcher 插件抛出java.lang.IllegalArgumentException:接收器未注册:io.flutter.plugins.urllauncher.WebViewActivity

是否可以在 flutter 应用程序中使用 jetpack compose?

使用 riverpod 提供 GoRouter 实例的正确方法是什么?

如何在 Flutter 中使用 drawLine() 和 drawCircle() 绘制等距离的 4 条线

如何在椭圆形图像周围添加边框?Flutter

Flutter Web App 未启动:脚本的 MIME 类型不受支持

如何从 Flutter 中的列表中提取 JSON?