Search code examples
flutterrxdart

AsyncSnapshot rejecting Type Annotation


I have a StreamBuilder that is taking data from my bloc component.

However it keeps rejecting my type annotation AsyncSnapshot<List<int>> snapshot and only accepts dynamic as a type AsyncSnapshot<List<dynamic>> snapshot. Yet in the examples i've viewed they do have type annotaions with no complaints.

Here is my stream creation.

Widget buildList(StoriesBloc bloc) {
return StreamBuilder(
  stream: bloc.topIds,
  builder: (BuildContext context, AsyncSnapshot<List<int>> snapshot) {
    if (!snapshot.hasData) {
      return Text("Still Waiting for Ids to fetch");
    }

    return ListView.builder(
      itemCount: snapshot.data.length,
      itemBuilder: (context, int index) {
        return Text('${snapshot.data[index]}');
      },
    );
  },
);

}

Here is the VSCode error generated. VSCode Error

What could i be doing wrong ?


Solution

  • Turns out my bloc.topIds result type was not of type List<int>.

    Observable<List> get topIds => _topIds.stream;

    So i simply changed it to fulfill the required type.

    Observable<List<int>> get topIds => _topIds.stream;

    And that fixed the issue. Hope it helps someone else.