NoSuchMethodError: invalid member on nul: "_set"

NoSuchMethodError: invalid member on nul: "_set"

我是 Flutter 新手。 我正在尝试制作 Listview 文本字段的总计。 但是当在 ItemBuilder

下面插入行时

t1[index] = TextEditingController();

它抛出错误 NoSuchMethodError:nul 上的成员无效:“_set” 但当。我已经声明了列表 T1 的变量 为此目的。请解决 ListView 中的文本字段总数。

附上示例代码。 提前致谢。


import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  List data = ["apple kg", "banana kg", "mango kg"];
  List<TextEditingController> t1;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Container(
            width: 400,
            height: 300,
            child: ListView.builder(
              itemCount: data.length,
              itemBuilder: (context, index) {
                t1[index] = TextEditingController();
                return Container(
                  width: 300,
                  decoration: BoxDecoration(
                    border: Border.all(color: Colors.blue, width: 0.5),
                  ),
                  child: Column(
                    children: [
                      Text(data[index]),
                      TextField(),
                    ],
                  ),
                );
              },
            ),
          ),
          Text("TOTAL SALE"),
        ],
      ),
    );
  }
}

在声明中:

  List<TextEditingController> t1=[];

ListView.builder 中将 t1[index] = TextEditingController(); 更改为

  if(index<ti.length){
     t1[index] = TextEditingController();
  }else{
     t1.add(TextEditingController());
  }

原因是你声明了一个空列表,而列表中没有元素,你尝试将TextEditingController设置为null。