前提・実現したいこと
多言語からflutter移行でhttpリクエストを作る機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
type 'String' is not a subtype of type 'DateTime'
該当のソースコード
業務でのコードなので全文貼り付けができないのですが、下記のようなコードです。
共通部分はApiProviderクラスの機能を使って、個別のapiを作成するコードです。
dart
1import 'package:flutter/cupertino.dart'; 2import 'Package:intl/intl.dart'; 3import 'api_provider.dart'; 4import 'package:flutterapp/models/sample_list.dart'; 5 6class SampleProvider extends ApiProvider{ 7 SampleProvider() : super.api_name("sample"); 8 9 Future<SampleList> getSampleList() async { 10 DateTime now = DateTime.now(); 11 String formattedNow = DateFormat('yyyy-MM-dd HH:ss').format(now); 12 try{ 13 final response = await super.get({ 14 'devicetime': formattedNow, 15 }); 16 return SampleList.formJson(response); 17 } 18 catch(e){ 19 debugPrint(e.toString()); 20 } 21 22 } 23} 24
試したこと
dart
1import 'package:flutter/cupertino.dart'; 2import 'Package:intl/intl.dart'; 3import 'api_provider.dart'; 4import 'package:flutterapp/models/sample_list.dart'; 5 6class SampleProvider extends ApiProvider{ 7 8 SampleProvider() : super.api_name("sample"); 9 10 Future<SampleList> getSampleList() async { 11 12 try{ 13 final response = await super.get(); 14 return SampleList.formJson(response); 15 } 16 catch(e){ 17 debugPrint(e.toString()); 18 } 19 20 } 21}
全文貼り付けられないので申し訳ないのですが、上記のコードは問題なく動いたのですが、下記を追加した際にエラーが発生しました。
DateTime now = DateTime.now(); String formattedNow = DateFormat('yyyy-MM-dd HH:ss').format(now); //try{}内 final response = await super.get({ 'devicetime': formattedNow, });
補足情報(FW/ツールのバージョンなど)
元のコード上でも'devidetime'の値はString型で渡しており、ApiProviderのgetはFuture<Object> get([Map<String, string> params]) async {}
と定義してあります。
不完全なコードで申し訳ないのですが、このコードで情報足りないようでしたら回答諦めます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。