首页 > 解决方案 > StreamBuilder 给我错误 Cannot read properties of undefined (reading 'app') CRUD APP FLUTTER

问题描述

我尝试创建streamBulider,但是当我尝试返回时出现错误:

*在构建 MyApp(dirty, state: _MyAppState#eeb7b) 时引发了以下 JSNoSuchMethodError:TypeError:无法读取未定义的属性(正在读取“应用程序”)

相关的导致错误的小部件是 MyApp lib\main.dart:13 当抛出异常时,这是堆栈*

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
 import 'todo_list.dart';
import 'package:async/async.dart';
import "package:shared_preferences/shared_preferences.dart";
import 'package:cloud_firestore/cloud_firestore.dart';

 @Deprecated(
  'Migrate to setEnabledSystemUIMode. '
  'This feature was deprecated after v2.3.0-17.0.pre.'
)

void main() =>runApp(MaterialApp(debugShowCheckedModeBanner: false,home:MyApp()));

class MyApp extends StatefulWidget {
  const MyApp({ Key? key }) : super(key: key);



  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
//FirebaseFirestore firestore = FirebaseFirestore.instance;
 List todos=[];
String input="";

  createTodos(){
DocumentReference documentReference= FirebaseFirestore.instance.collection("MyTodos").doc(input);

Map<String ,String> todos={
  "todoTitle":input

};
documentReference.set(todos).whenComplete((){
print("$input created");
});

  }

 void initState(){
  todos.add("Item1");
  todos.add("Item2");
  todos.add("Item3");

}


 _showDialog(){

    return showDialog<void>(
       context:context,
       builder:(BuildContext context){
         return AlertDialog(
         content: TextField( onChanged:(String value){input=value;}), 
        //title:Center(child:const Text("Add New Task")),
      
actions:<Widget>[

Column(
                    mainAxisSize: MainAxisSize.min,
                    children: <Widget>[
                     
                      
                      
                      
                      
                      Row(
                        mainAxisAlignment: MainAxisAlignment.spaceBetween,
                        children: <Widget>[
                          // ignore: deprecated_member_use
                          FlatButton(
                              child: Text('No'),
                              onPressed: () {
                                Navigator.of(context).pop();
                              }),
                          // ignore: deprecated_member_use
                          FlatButton(
                              child: Text('Yes'),
                              onPressed: () {

                                
                                setState(() {
                                //todos.add(input);
                                createTodos(); 
                                Navigator.of(context).pop();
                                });
                               // SawText.clear();
                               })
                        ])
                    ],
                  ),
],

                );

         
       }
       

       );

   }
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
home: Scaffold(
      body:StreamBuilder(stream:  FirebaseFirestore.instance.collection("MyTodos").snapshots(),builder:(context,snapshots)
      {
        return ListView.builder(
        itemCount:todos.length,
        itemBuilder: ( BuildContext context , int index){
 return Dismissible(
   key:Key(todos[index]),
   child: Card(
   child: ListTile(title:Text(todos[index])),
     )
   );

        });
      }
      ),

//       ListView.builder(
//         itemCount:todos.length,
//         itemBuilder: ( BuildContext context , int index){
//  return Dismissible(key:Key(todos[index]),child: Card(child: ListTile(title:Text(todos[index])),));

//         }),
         floatingActionButton: FloatingActionButton(
    child:const Icon(Icons.add),
    
    onPressed: (){
_showDialog();
    },


    ),

    )

    );
    
   
  }
  

}

标签: flutter

解决方案


推荐阅读