【问题标题】:flutter error in a non-null string must be provided to a Text widget非空字符串中的颤动错误必须提供给文本小部件
【发布时间】:2022-11-17 01:55:01
【问题描述】:

这个错误是在 udemy maximilian schwarzmuller 的 flutter course 错误中。 这是代码:我已经提供了字符串值,但我仍然在('tx.title')中将非空字符串提供给文本小部件错误,

import 'package:flutter/material.dart';
import './transaction.dart';

void main() => runApp(MyWidget());

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'flutter app',
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  final List<Transaction> transactions = [
    Transaction(
      id: '01',
      title: 'azeem',
      amount: 90.98,
      date: DateTime.now(),
    ),
    Transaction(
      id: '02',
      title: 'azeem',
      amount: 90.98,
      date: DateTime.now(),
    )
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Expense App'),
      ),
      body: Column(
        mainAxisAlignment: MainAxisAlignment.spaceAround,
        crossAxisAlignment: CrossAxisAlignment.center,
        children: [
          Container(
            width: double.infinity,
            child: Card(
              child: Text('Text_1'),
              color: Colors.blue,
            ),
          ),
          Column(
            children: transactions.map((tx) {
              return Card(
                child: Text(tx.title),
              );
            }).toList(),
          ),
        ],
      ),
    );
  }
}

我已将字符串提供给此函数,但出现错误。

enter image description here

【问题讨论】:

  • 请显示事务类。

标签: flutter dart mobile


【解决方案1】:

尝试这个;

  Column(
        children: transactions.map((tx) {
          return Card(
            child: Text(tx.title ?? "default text on null"),
          );
        }).toList(),
      ),

【讨论】:

    【解决方案2】:

    你有多种方法来解决这个问题

    1.

    Column(
            children: transactions.map((tx) {
              return Card(
                child: Text(tx.title!= null ? tx.title : "Default Title"),
              );
            }).toList(),
          ),
    

    2.

    Column(
            children: transactions.map((tx) {
              return Card(
                child: Text(tx.title ?? "Default Title"),
              );
            }).toList(),
          ),
    

    3.

    if(tx.title != null)
    Column(
            children: transactions.map((tx) {
              return Card(
                child: Text(tx.title!),
              );
            }).toList(),
          ),
    

    4.

    Column(
            children: transactions.map((tx) {
              return Card(
                child: Text(tx.title.toString()),
              );
            }).toList(),
          ),
    

    【讨论】:

      猜你喜欢
      • 2021-10-11
      • 2020-12-07
      • 2021-05-11
      • 2021-02-14
      • 2021-03-03
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      • 2021-08-29
      相关资源
      最近更新 更多