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
student
hace 7 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
    Fernanda Aragon

    Fernanda Aragon

    student
    hace 7 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.

    Mario Vizcaino

    Mario Vizcaino

    student
    hace 7 años

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

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.