【发布时间】:2021-11-21 15:16:44
【问题描述】:
我是 Flutter 新手。
我想通过 REST API(使用 post 方法)将数据从前端传递到 node.js 后端。但是在执行应用程序时会显示以下错误。
这是我目前写的代码。我试图找出错误是什么,但不幸的是我找不到它。有人可以帮我解决这个问题吗?
-
模型文件
DataModel dataModelFromJSON(String str) => DataModel.fromJson(jsonDecode(str)); String dataModelToJson(DataModel data) => json.encode(data.toJson()); class DataModel { DataModel({required this.title, required this.id}); String title; String id; factory DataModel.fromJson(Map<String, dynamic> json) => DataModel(title: json['title'], id: json['id']); Map<String, dynamic> toJson() => {"name": title, "id": id}; } -
页面出现错误
class PurchaseOrder extends StatefulWidget { @override _PurchaseOrderState createState() => _PurchaseOrderState(); } Future<DataModel?> submitData(String title) async { var response = await http.post( Uri.http('176.12.10.0:8020', 'order/create'), body: {"title": title}, ); print(title); var data = response.body; print(data); if (response.statusCode == 201) { String responseString = response.body; return dataModelFromJSON(responseString); } else return null; } class _PurchaseOrderState extends State<PurchaseOrder> { String today = DateFormat('yMd').format(DateTime.now()); late DataModel _dataModel; TextEditingController titleController = TextEditingController(); @override Widget build(BuildContext context) { final GlobalKey<FormState> _formKey = GlobalKey<FormState>(); return Container( child: Column( children: [ TextFormField( decoration: const InputDecoration( hintText: 'Enter your email', ), controller: titleController, ), Expanded( child: Padding( padding: const EdgeInsets.all(8.0), child: OutlinedButton( onPressed: () async { String title = titleController.text; DataModel? data = await submitData(title); setState(() { _dataModel = data!; }); }, child: Text("Submit"), ), ), ), ], ), ); } }
希望您能帮助解决此问题。 谢谢
已编辑: 我对代码进行了以下更改。错误消失了。但是数据还没有传递到后端。我该怎么办。
我变了,
_dataModel = data!;
到
if (data != null) {
_dataModel = data;
}
【问题讨论】:
-
请避免将代码作为图片上传。 meta.stackoverflow.com/questions/285551/… 。祝你好运???
-
@novonimo 感谢您提供的信息。 ????
标签: flutter rest mobile flutter-dependencies