代码之家  ›  专栏  ›  技术社区  ›  nita makavana

颤振错误:位置参数太多:应为0,但在streambuilder中找到1

  •  -1
  • nita makavana  · 技术社区  · 2 年前

    颤振错误:位置参数太多:应为0,但在streambuilder中发现1。我看过许多文章对此进行了发布,但我无法获得正确的解决方案,因此请帮助我解决此问题。

    代码:

     StreamBuilder(
     stream: _products.snapshots(), //build connection
     builder: (context, AsyncSnapshot<QuerySnapshot> streamSnapshot) {
     if (streamSnapshot.hasData) {
     return ListView.builder(
     itemCount: streamSnapshot.data!.docs.length, //number of rows
     itemBuilder: (context, index) {
     final DocumentSnapshot documentSnapshot =
     streamSnapshot.data!.docs[index];
     return Card(
     margin: const EdgeInsets.all(10),
     child: ListTile(
     title: Text(documentSnapshot['name']),
     subtitle: Text(documentSnapshot['price'].toString()),
                      ),
                    );
                  },
                );
              }
    
     return const Center(
     child: CircularProgressIndicator(),
              );
            },
          )
    

    enter image description here

    1 回复  |  直到 2 年前
        1
  •  0
  •   Kaushik Chandru    2 年前

    流生成器看起来不在小部件树中。请试试这个

    Scaffold(
    floatingActionButton : FloatingActionButton(),
    body : SizedBox(
            width: double.infinity,
            child: Center(
              child: StreamBuilder(
                stream: _products.snapshots(),
                initialData: 0,
                builder: (
                    BuildContext context,
                    AsyncSnapshot<QuerySnapshot> snapshot,
                    ) {
                  if (snapshot.connectionState == ConnectionState.waiting) {
                    return Container( );
                  } else if (snapshot.connectionState == ConnectionState.active
                      || snapshot.connectionState == ConnectionState.done) {
                    if (snapshot.hasError) {
                      return const Text('Error');
                    } else if (snapshot.hasData) {
                      return Text(
                          snapshot.data.toString(),
                      );
                    } else {
                      return const Text('Empty data');
                    }
                  } else {
                    return Text('State: ${snapshot.connectionState}');
                  }
    ),