_TypeError - 类型“Null”不是“String”类型的子类型; - 颤振

发布于 2025-01-15 20:54:21 字数 12973 浏览 1 评论 0原文

我收到这个错误:

类型“String”不是 get 方法 flutter 中类型“Null”的子类型

来自后端的 get 方法 flutter API 响应

{
    "ticketId": "5ea260c9-0b70-482d-b8ca-7f811a96bd29",
    "ticketNumber": 1524,
    "subject": "Subjet 112",
    "priority": "Low",
    "description": "Postman api post",
    "anyAttachment": false,
    "status": "Open",
    "createdAt": "2022-03-20T05:08:37.672Z",
    "requesterName": "Ayana Mohan",
    "requesterUUID": "90bf9452-b690-47f2-aa0c-4b3809fdb023",
    "requesterPhone": "1231423123",
    "requesterEmail": "[email protected]",
    "customerId": "c8595a40-ea63-4883-9f94-e79f2545dee3",
    "ticketType": "Incident",
    "categoryId": null,
    "category": null,
    "assigneeUUID": null,
    "assigneeName": null,
    "assigneeEmail": null,
    "assigneePhone": null,
    "groupUUID": null,
    "groupName": null,
    "rcaTitle": null,
    "rca": null,
    "rcaSolution": null,
    "rcaWorkaround": null,
    "rcsSymptoms": null,
    "rcaBy": null,
    "rcaDate": null,
    "rcaTag": [],
    "formControl": [],
    "classified": null,
    "initiatedBy": null,
    "initiationComment": null,
    "impact": null,
    "risk": null,
    "downtimeStart": null,
    "downtimeEnd": null,
    "assetName": null,
    "serviceName": null,
    "applicationName": null,
    "submissionStatus": null,
    "planningStatus": null,
    "implementationStatus": null,
    "reviewStatus": null,
    "closeStatus": null,
    "finalStatus": null,
    "ticketView": null,
    "completeDate": null,
    "cabRequired": null,
    "rolloutPlan": null,
    "backoutPlan": null,
    "impactAnalysis": null,
    "reason": null,
    "workflowStatus": null,
    "releasePlan": null,
    "testComment": null,
    "testResult": null,
    "closeComment": null,
    "closeResult": null,
    "refTicketId": null,
    "tenantId": "8e963a4d-75d3-4727-b92d-44f24ef80aad"
}

:这是我使用的 get API 函数

 Future<List<UserTicketResponseModel>> getAllUserIssueTicket() async {
    List<UserTicketResponseModel> userTicketModel = [];
    final _token = await getToken();

    try {
      http.Response response = await http.get(
        Uri.parse(ticketingBaseUrl + USER_TICKET),
        headers: {
          "Content-Type": "application/json",
          "Authorization": "Bearer $_token",
        },
      );

      userTicketLoading = true;
      var userTickets = jsonDecode(response.body);
      userTicketModel = userTickets
          .map((tickets) => UserTicketResponseModel.fromJson(tickets))
          .toList();
      notifyListeners();
      return userTicketModel;
    } on SocketException {
      throw 'No Internet Connection';
    }
  }

模型类:

import 'dart:convert';

UserTicketResponseModel userTicketResponseModelFromJson(String str) =>
    UserTicketResponseModel.fromJson(json.decode(str));

String userTicketResponseModelToJson(UserTicketResponseModel data) =>
    json.encode(data.toJson());

class UserTicketResponseModel {
  UserTicketResponseModel({
    required this.ticketId,
    required this.ticketNumber,
    required this.subject,
    required this.priority,
    required this.description,
    required this.anyAttachment,
    required this.status,
    required this.createdAt,
    required this.requesterName,
    required this.requesterUuid,
    required this.requesterPhone,
    required this.requesterEmail,
    required this.customerId,
    required this.ticketType,
    required this.categoryId,
    required this.category,
    required this.assigneeUuid,
    required this.assigneeName,
    required this.assigneeEmail,
    required this.assigneePhone,
    required this.groupUuid,
    required this.groupName,
    required this.rcaTitle,
    required this.rca,
    required this.rcaSolution,
    required this.rcaWorkaround,
    required this.rcsSymptoms,
    required this.rcaBy,
    required this.rcaDate,
    required this.rcaTag,
    required this.formControl,
    required this.classified,
    required this.initiatedBy,
    required this.initiationComment,
    required this.impact,
    required this.risk,
    required this.downtimeStart,
    required this.downtimeEnd,
    required this.assetName,
    required this.serviceName,
    required this.applicationName,
    required this.submissionStatus,
    required this.planningStatus,
    required this.implementationStatus,
    required this.reviewStatus,
    required this.closeStatus,
    required this.finalStatus,
    required this.ticketView,
    required this.completeDate,
    required this.cabRequired,
    required this.rolloutPlan,
    required this.backoutPlan,
    required this.impactAnalysis,
    required this.reason,
    required this.workflowStatus,
    required this.releasePlan,
    required this.testComment,
    required this.testResult,
    required this.closeComment,
    required this.closeResult,
    required this.refTicketId,
    required this.tenantId,
  });

  String ticketId;
  int ticketNumber;
  String subject;
  String priority;
  String description;
  bool anyAttachment;
  String status;
  DateTime createdAt;
  String requesterName;
  String requesterUuid;
  String requesterPhone;
  String requesterEmail;
  String customerId;
  String ticketType;
  dynamic categoryId;
  dynamic category;
  dynamic assigneeUuid;
  dynamic assigneeName;
  dynamic assigneeEmail;
  dynamic assigneePhone;
  dynamic groupUuid;
  dynamic groupName;
  dynamic rcaTitle;
  dynamic rca;
  dynamic rcaSolution;
  dynamic rcaWorkaround;
  dynamic rcsSymptoms;
  dynamic rcaBy;
  dynamic rcaDate;
  List<dynamic> rcaTag;
  dynamic formControl;
  dynamic classified;
  dynamic initiatedBy;
  dynamic initiationComment;
  dynamic impact;
  dynamic risk;
  dynamic downtimeStart;
  dynamic downtimeEnd;
  dynamic assetName;
  dynamic serviceName;
  dynamic applicationName;
  dynamic submissionStatus;
  dynamic planningStatus;
  dynamic implementationStatus;
  dynamic reviewStatus;
  dynamic closeStatus;
  dynamic finalStatus;
  dynamic ticketView;
  dynamic completeDate;
  dynamic cabRequired;
  dynamic rolloutPlan;
  dynamic backoutPlan;
  dynamic impactAnalysis;
  dynamic reason;
  dynamic workflowStatus;
  dynamic releasePlan;
  dynamic testComment;
  dynamic testResult;
  dynamic closeComment;
  dynamic closeResult;
  dynamic refTicketId;
  String tenantId;

  factory UserTicketResponseModel.fromJson(Map<String, dynamic> json) =>
      UserTicketResponseModel(
        ticketId: json["ticketId"],
        ticketNumber: json["ticketNumber"],
        subject: json["subject"],
        priority: json["priority"],
        description: json["description"],
        anyAttachment: json["anyAttachment"],
        status: json["status"],
        createdAt: DateTime.parse(json["createdAt"]),
        requesterName: json["requesterName"],
        requesterUuid: json["requesterUUID"],
        requesterPhone: json["requesterPhone"],
        requesterEmail: json["requesterEmail"],
        customerId: json["customerId"],
        ticketType: json["ticketType"],
        categoryId: json["categoryId"],
        category: json["category"],
        assigneeUuid: json["assigneeUUID"],
        assigneeName: json["assigneeName"],
        assigneeEmail: json["assigneeEmail"],
        assigneePhone: json["assigneePhone"],
        groupUuid: json["groupUUID"],
        groupName: json["groupName"],
        rcaTitle: json["rcaTitle"],
        rca: json["rca"],
        rcaSolution: json["rcaSolution"],
        rcaWorkaround: json["rcaWorkaround"],
        rcsSymptoms: json["rcsSymptoms"],
        rcaBy: json["rcaBy"],
        rcaDate: json["rcaDate"],
        rcaTag: List<dynamic>.from(json["rcaTag"].map((x) => x)),
        formControl: json["formControl"],
        classified: json["classified"],
        initiatedBy: json["initiatedBy"],
        initiationComment: json["initiationComment"],
        impact: json["impact"],
        risk: json["risk"],
        downtimeStart: json["downtimeStart"],
        downtimeEnd: json["downtimeEnd"],
        assetName: json["assetName"],
        serviceName: json["serviceName"],
        applicationName: json["applicationName"],
        submissionStatus: json["submissionStatus"],
        planningStatus: json["planningStatus"],
        implementationStatus: json["implementationStatus"],
        reviewStatus: json["reviewStatus"],
        closeStatus: json["closeStatus"],
        finalStatus: json["finalStatus"],
        ticketView: json["ticketView"],
        completeDate: json["completeDate"],
        cabRequired: json["cabRequired"],
        rolloutPlan: json["rolloutPlan"],
        backoutPlan: json["backoutPlan"],
        impactAnalysis: json["impactAnalysis"],
        reason: json["reason"],
        workflowStatus: json["workflowStatus"],
        releasePlan: json["releasePlan"],
        testComment: json["testComment"],
        testResult: json["testResult"],
        closeComment: json["closeComment"],
        closeResult: json["closeResult"],
        refTicketId: json["refTicketId"],
        tenantId: json["tenantId"],
      );

  Map<String, dynamic> toJson() => {
        "ticketId": ticketId,
        "ticketNumber": ticketNumber,
        "subject": subject,
        "priority": priority,
        "description": description,
        "anyAttachment": anyAttachment,
        "status": status,
        "createdAt": createdAt.toIso8601String(),
        "requesterName": requesterName,
        "requesterUUID": requesterUuid,
        "requesterPhone": requesterPhone,
        "requesterEmail": requesterEmail,
        "customerId": customerId,
        "ticketType": ticketType,
        "categoryId": categoryId,
        "category": category,
        "assigneeUUID": assigneeUuid,
        "assigneeName": assigneeName,
        "assigneeEmail": assigneeEmail,
        "assigneePhone": assigneePhone,
        "groupUUID": groupUuid,
        "groupName": groupName,
        "rcaTitle": rcaTitle,
        "rca": rca,
        "rcaSolution": rcaSolution,
        "rcaWorkaround": rcaWorkaround,
        "rcsSymptoms": rcsSymptoms,
        "rcaBy": rcaBy,
        "rcaDate": rcaDate,
        "rcaTag": List<dynamic>.from(rcaTag.map((x) => x)),
        "formControl": formControl,
        "classified": classified,
        "initiatedBy": initiatedBy,
        "initiationComment": initiationComment,
        "impact": impact,
        "risk": risk,
        "downtimeStart": downtimeStart,
        "downtimeEnd": downtimeEnd,
        "assetName": assetName,
        "serviceName": serviceName,
        "applicationName": applicationName,
        "submissionStatus": submissionStatus,
        "planningStatus": planningStatus,
        "implementationStatus": implementationStatus,
        "reviewStatus": reviewStatus,
        "closeStatus": closeStatus,
        "finalStatus": finalStatus,
        "ticketView": ticketView,
        "completeDate": completeDate,
        "cabRequired": cabRequired,
        "rolloutPlan": rolloutPlan,
        "backoutPlan": backoutPlan,
        "impactAnalysis": impactAnalysis,
        "reason": reason,
        "workflowStatus": workflowStatus,
        "releasePlan": releasePlan,
        "testComment": testComment,
        "testResult": testResult,
        "closeComment": closeComment,
        "closeResult": closeResult,
        "refTicketId": refTicketId,
        "tenantId": tenantId,
      };
}

这是我的监听函数:

List<UserTicketResponseModel> _userTicketModel = [];
  @override
  void initState() {
    super.initState();
    getUserTickets();
}

Future<void> getUserTickets() async {
    UserTicketProvider provider =
        Provider.of<UserTicketProvider>(context, listen: false);
    _userTicketModel = await provider.getAllUserIssueTicket();
    print("User Tickets Main: " + _userTicketModel.toString());
  }


body: ListView.builder(
        itemCount: _userTicketModel.length,
        itemBuilder: (context, index) {
          return SingleChildScrollView(
            child: UserTicketsList(
              ticketNumber: _userTicketModel[index].ticketNumber.toString(),
              requester: _userTicketModel[index].requesterName.toString(),
             
              subject: _userTicketModel[index].subject.toString(),
              priorityType: _userTicketModel[index].priority.toString(),
              statusType: _userTicketModel[index].status.toString(),
            ),
          );
        },
      ),

当我运行时应用程序在模型类中发生异常并显示此错误:

_TypeError 类型“Null”不是类型“String”的子类型

我是初学者,我不明白问题是什么!我尝试使用 ??String? 进行模型类 null 检查,但不起作用!

I got this error:

type 'String' is not a subtype of type 'Null' in get method flutter

API response from backend:

{
    "ticketId": "5ea260c9-0b70-482d-b8ca-7f811a96bd29",
    "ticketNumber": 1524,
    "subject": "Subjet 112",
    "priority": "Low",
    "description": "Postman api post",
    "anyAttachment": false,
    "status": "Open",
    "createdAt": "2022-03-20T05:08:37.672Z",
    "requesterName": "Ayana Mohan",
    "requesterUUID": "90bf9452-b690-47f2-aa0c-4b3809fdb023",
    "requesterPhone": "1231423123",
    "requesterEmail": "[email protected]",
    "customerId": "c8595a40-ea63-4883-9f94-e79f2545dee3",
    "ticketType": "Incident",
    "categoryId": null,
    "category": null,
    "assigneeUUID": null,
    "assigneeName": null,
    "assigneeEmail": null,
    "assigneePhone": null,
    "groupUUID": null,
    "groupName": null,
    "rcaTitle": null,
    "rca": null,
    "rcaSolution": null,
    "rcaWorkaround": null,
    "rcsSymptoms": null,
    "rcaBy": null,
    "rcaDate": null,
    "rcaTag": [],
    "formControl": [],
    "classified": null,
    "initiatedBy": null,
    "initiationComment": null,
    "impact": null,
    "risk": null,
    "downtimeStart": null,
    "downtimeEnd": null,
    "assetName": null,
    "serviceName": null,
    "applicationName": null,
    "submissionStatus": null,
    "planningStatus": null,
    "implementationStatus": null,
    "reviewStatus": null,
    "closeStatus": null,
    "finalStatus": null,
    "ticketView": null,
    "completeDate": null,
    "cabRequired": null,
    "rolloutPlan": null,
    "backoutPlan": null,
    "impactAnalysis": null,
    "reason": null,
    "workflowStatus": null,
    "releasePlan": null,
    "testComment": null,
    "testResult": null,
    "closeComment": null,
    "closeResult": null,
    "refTicketId": null,
    "tenantId": "8e963a4d-75d3-4727-b92d-44f24ef80aad"
}

This is the get API function that I use

 Future<List<UserTicketResponseModel>> getAllUserIssueTicket() async {
    List<UserTicketResponseModel> userTicketModel = [];
    final _token = await getToken();

    try {
      http.Response response = await http.get(
        Uri.parse(ticketingBaseUrl + USER_TICKET),
        headers: {
          "Content-Type": "application/json",
          "Authorization": "Bearer $_token",
        },
      );

      userTicketLoading = true;
      var userTickets = jsonDecode(response.body);
      userTicketModel = userTickets
          .map((tickets) => UserTicketResponseModel.fromJson(tickets))
          .toList();
      notifyListeners();
      return userTicketModel;
    } on SocketException {
      throw 'No Internet Connection';
    }
  }

Model Class:

import 'dart:convert';

UserTicketResponseModel userTicketResponseModelFromJson(String str) =>
    UserTicketResponseModel.fromJson(json.decode(str));

String userTicketResponseModelToJson(UserTicketResponseModel data) =>
    json.encode(data.toJson());

class UserTicketResponseModel {
  UserTicketResponseModel({
    required this.ticketId,
    required this.ticketNumber,
    required this.subject,
    required this.priority,
    required this.description,
    required this.anyAttachment,
    required this.status,
    required this.createdAt,
    required this.requesterName,
    required this.requesterUuid,
    required this.requesterPhone,
    required this.requesterEmail,
    required this.customerId,
    required this.ticketType,
    required this.categoryId,
    required this.category,
    required this.assigneeUuid,
    required this.assigneeName,
    required this.assigneeEmail,
    required this.assigneePhone,
    required this.groupUuid,
    required this.groupName,
    required this.rcaTitle,
    required this.rca,
    required this.rcaSolution,
    required this.rcaWorkaround,
    required this.rcsSymptoms,
    required this.rcaBy,
    required this.rcaDate,
    required this.rcaTag,
    required this.formControl,
    required this.classified,
    required this.initiatedBy,
    required this.initiationComment,
    required this.impact,
    required this.risk,
    required this.downtimeStart,
    required this.downtimeEnd,
    required this.assetName,
    required this.serviceName,
    required this.applicationName,
    required this.submissionStatus,
    required this.planningStatus,
    required this.implementationStatus,
    required this.reviewStatus,
    required this.closeStatus,
    required this.finalStatus,
    required this.ticketView,
    required this.completeDate,
    required this.cabRequired,
    required this.rolloutPlan,
    required this.backoutPlan,
    required this.impactAnalysis,
    required this.reason,
    required this.workflowStatus,
    required this.releasePlan,
    required this.testComment,
    required this.testResult,
    required this.closeComment,
    required this.closeResult,
    required this.refTicketId,
    required this.tenantId,
  });

  String ticketId;
  int ticketNumber;
  String subject;
  String priority;
  String description;
  bool anyAttachment;
  String status;
  DateTime createdAt;
  String requesterName;
  String requesterUuid;
  String requesterPhone;
  String requesterEmail;
  String customerId;
  String ticketType;
  dynamic categoryId;
  dynamic category;
  dynamic assigneeUuid;
  dynamic assigneeName;
  dynamic assigneeEmail;
  dynamic assigneePhone;
  dynamic groupUuid;
  dynamic groupName;
  dynamic rcaTitle;
  dynamic rca;
  dynamic rcaSolution;
  dynamic rcaWorkaround;
  dynamic rcsSymptoms;
  dynamic rcaBy;
  dynamic rcaDate;
  List<dynamic> rcaTag;
  dynamic formControl;
  dynamic classified;
  dynamic initiatedBy;
  dynamic initiationComment;
  dynamic impact;
  dynamic risk;
  dynamic downtimeStart;
  dynamic downtimeEnd;
  dynamic assetName;
  dynamic serviceName;
  dynamic applicationName;
  dynamic submissionStatus;
  dynamic planningStatus;
  dynamic implementationStatus;
  dynamic reviewStatus;
  dynamic closeStatus;
  dynamic finalStatus;
  dynamic ticketView;
  dynamic completeDate;
  dynamic cabRequired;
  dynamic rolloutPlan;
  dynamic backoutPlan;
  dynamic impactAnalysis;
  dynamic reason;
  dynamic workflowStatus;
  dynamic releasePlan;
  dynamic testComment;
  dynamic testResult;
  dynamic closeComment;
  dynamic closeResult;
  dynamic refTicketId;
  String tenantId;

  factory UserTicketResponseModel.fromJson(Map<String, dynamic> json) =>
      UserTicketResponseModel(
        ticketId: json["ticketId"],
        ticketNumber: json["ticketNumber"],
        subject: json["subject"],
        priority: json["priority"],
        description: json["description"],
        anyAttachment: json["anyAttachment"],
        status: json["status"],
        createdAt: DateTime.parse(json["createdAt"]),
        requesterName: json["requesterName"],
        requesterUuid: json["requesterUUID"],
        requesterPhone: json["requesterPhone"],
        requesterEmail: json["requesterEmail"],
        customerId: json["customerId"],
        ticketType: json["ticketType"],
        categoryId: json["categoryId"],
        category: json["category"],
        assigneeUuid: json["assigneeUUID"],
        assigneeName: json["assigneeName"],
        assigneeEmail: json["assigneeEmail"],
        assigneePhone: json["assigneePhone"],
        groupUuid: json["groupUUID"],
        groupName: json["groupName"],
        rcaTitle: json["rcaTitle"],
        rca: json["rca"],
        rcaSolution: json["rcaSolution"],
        rcaWorkaround: json["rcaWorkaround"],
        rcsSymptoms: json["rcsSymptoms"],
        rcaBy: json["rcaBy"],
        rcaDate: json["rcaDate"],
        rcaTag: List<dynamic>.from(json["rcaTag"].map((x) => x)),
        formControl: json["formControl"],
        classified: json["classified"],
        initiatedBy: json["initiatedBy"],
        initiationComment: json["initiationComment"],
        impact: json["impact"],
        risk: json["risk"],
        downtimeStart: json["downtimeStart"],
        downtimeEnd: json["downtimeEnd"],
        assetName: json["assetName"],
        serviceName: json["serviceName"],
        applicationName: json["applicationName"],
        submissionStatus: json["submissionStatus"],
        planningStatus: json["planningStatus"],
        implementationStatus: json["implementationStatus"],
        reviewStatus: json["reviewStatus"],
        closeStatus: json["closeStatus"],
        finalStatus: json["finalStatus"],
        ticketView: json["ticketView"],
        completeDate: json["completeDate"],
        cabRequired: json["cabRequired"],
        rolloutPlan: json["rolloutPlan"],
        backoutPlan: json["backoutPlan"],
        impactAnalysis: json["impactAnalysis"],
        reason: json["reason"],
        workflowStatus: json["workflowStatus"],
        releasePlan: json["releasePlan"],
        testComment: json["testComment"],
        testResult: json["testResult"],
        closeComment: json["closeComment"],
        closeResult: json["closeResult"],
        refTicketId: json["refTicketId"],
        tenantId: json["tenantId"],
      );

  Map<String, dynamic> toJson() => {
        "ticketId": ticketId,
        "ticketNumber": ticketNumber,
        "subject": subject,
        "priority": priority,
        "description": description,
        "anyAttachment": anyAttachment,
        "status": status,
        "createdAt": createdAt.toIso8601String(),
        "requesterName": requesterName,
        "requesterUUID": requesterUuid,
        "requesterPhone": requesterPhone,
        "requesterEmail": requesterEmail,
        "customerId": customerId,
        "ticketType": ticketType,
        "categoryId": categoryId,
        "category": category,
        "assigneeUUID": assigneeUuid,
        "assigneeName": assigneeName,
        "assigneeEmail": assigneeEmail,
        "assigneePhone": assigneePhone,
        "groupUUID": groupUuid,
        "groupName": groupName,
        "rcaTitle": rcaTitle,
        "rca": rca,
        "rcaSolution": rcaSolution,
        "rcaWorkaround": rcaWorkaround,
        "rcsSymptoms": rcsSymptoms,
        "rcaBy": rcaBy,
        "rcaDate": rcaDate,
        "rcaTag": List<dynamic>.from(rcaTag.map((x) => x)),
        "formControl": formControl,
        "classified": classified,
        "initiatedBy": initiatedBy,
        "initiationComment": initiationComment,
        "impact": impact,
        "risk": risk,
        "downtimeStart": downtimeStart,
        "downtimeEnd": downtimeEnd,
        "assetName": assetName,
        "serviceName": serviceName,
        "applicationName": applicationName,
        "submissionStatus": submissionStatus,
        "planningStatus": planningStatus,
        "implementationStatus": implementationStatus,
        "reviewStatus": reviewStatus,
        "closeStatus": closeStatus,
        "finalStatus": finalStatus,
        "ticketView": ticketView,
        "completeDate": completeDate,
        "cabRequired": cabRequired,
        "rolloutPlan": rolloutPlan,
        "backoutPlan": backoutPlan,
        "impactAnalysis": impactAnalysis,
        "reason": reason,
        "workflowStatus": workflowStatus,
        "releasePlan": releasePlan,
        "testComment": testComment,
        "testResult": testResult,
        "closeComment": closeComment,
        "closeResult": closeResult,
        "refTicketId": refTicketId,
        "tenantId": tenantId,
      };
}

This is my listen function:

List<UserTicketResponseModel> _userTicketModel = [];
  @override
  void initState() {
    super.initState();
    getUserTickets();
}

Future<void> getUserTickets() async {
    UserTicketProvider provider =
        Provider.of<UserTicketProvider>(context, listen: false);
    _userTicketModel = await provider.getAllUserIssueTicket();
    print("User Tickets Main: " + _userTicketModel.toString());
  }


body: ListView.builder(
        itemCount: _userTicketModel.length,
        itemBuilder: (context, index) {
          return SingleChildScrollView(
            child: UserTicketsList(
              ticketNumber: _userTicketModel[index].ticketNumber.toString(),
              requester: _userTicketModel[index].requesterName.toString(),
             
              subject: _userTicketModel[index].subject.toString(),
              priorityType: _userTicketModel[index].priority.toString(),
              statusType: _userTicketModel[index].status.toString(),
            ),
          );
        },
      ),

When I run the app, in model class Exception occurred and showed this error:

_TypeError type 'Null' is not a subtype of type 'String'

I'm a beginner and I don't understand what the problem is! I tried model class null check with ?? or as String? but not working!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文