Tengo una duda, ¿Como se puede hacer para manejar dos o más request para pedir información sobre un elemento en una lista? Actualmente t...

Pregunta de la clase:
Tercer reto
Mario Vizcaino

Mario Vizcaino

Pregunta
studenthace 6 años

Tengo una duda, ¿Como se puede hacer para manejar dos o más request para pedir información sobre un elemento en una lista?

Actualmente tengo esto:

Widget build(BuildContext context) { return FutureBuilder<PokeData>( future: api.getPokemonList(), builder: ( BuildContext context, AsyncSnapshot<PokeData> snapshot ) { if(snapshot.hasData && snapshot.connectionState == ConnectionState.done) { List<Widget> list = []; snapshot.data.results.forEach((pokemon) => { api.getPokeDetail(pokemon.url).then((resp) => { list.add( PokemonWidget( pokemon.name, resp.sprites.shinny, resp.types ) ) }), }); return Container( child: ListView( children: list, ), ); } else { return Center( child: CircularProgressIndicator(), ); } }, ); }

me funciona bien con el primer request, pero al llamar el segundo los datos nunca son pintados.

2 respuestas
para escribir tu comentario
    Mario Vizcaino

    Mario Vizcaino

    studenthace 6 años

    El problema que tengo es que siempre toma la lista como vacía haga lo que haga

    Fernanda Aragon

    Fernanda Aragon

    studenthace 6 años

    Hola Mario, te refieres a poder ejecutar el método

    getPokeDetail()
    despues de
    getPokemonList()
    ? Porque veo que es más tema de asincronismo, prueba que antes de hacer el return
    list
    sea mayor a 0 para que retorne cuando
    list
    ya tenga elementos.

Curso de Flutter

Curso de Flutter

Flutter es el framework de Google para desarrollar interfaces móviles nativas en iOS y Android, basado en los principios de Material Design y Cupertino (iOS) tendrás un look and feel totalmente natural en tus aplicaciones. Desarrolla aplicaciones móviles nativas de alta calidad y mucho más rápido usando Flutter.

Curso de Flutter
Curso de Flutter

Curso de Flutter

Flutter es el framework de Google para desarrollar interfaces móviles nativas en iOS y Android, basado en los principios de Material Design y Cupertino (iOS) tendrás un look and feel totalmente natural en tus aplicaciones. Desarrolla aplicaciones móviles nativas de alta calidad y mucho más rápido usando Flutter.