Tengo una lista de Strings, por ejemplo,

var moviesTitles = ['Inception', 'Heat', 'Spider Man'];

y quería usar moviesTitles.map para convertir a una lista de Tab Widgets en Movimiento.

3 Comentarios

  1. 71

    puede utilizar

    moviesTitles.map((title) => Tab(text: title)).toList()

    ejemplo:

        bottom: new TabBar(
          controller: _controller,
          isScrollable: true,
          tabs:
            moviesTitles.map((title) => Tab(text: title)).toList()
          ,
        ),
    • ¿Por qué necesitamos toList?
    • porque la pregunta es acerca de la asignación de una lista
    • Creo que la pregunta es ¿por qué es necesario en primer lugar. En Swift, la asignación de una Matriz<E> devuelve un Array<I> el nuevo tipo de resultado. ¿Por qué el resultado de la asignación de un Dardo Lista de<E> no ya una lista?
    • becaues aquí, en Dart, map<T> devuelve un Iterable<T> en lugar de un List<T>
    • El Iterable que map() devuelve es perezoso. No es evaluada sin embargo, sólo cuando alguien repite la misma. Llamar toList(), además de devolver una lista real, las fuerzas de la presente evaluación.
  2. 1

    Trato este mismo método, pero con una lista diferente, con más valores en la función de mapa. Mi problema era que olvidar una instrucción return. Esto es muy importante 🙂

     bottom: new TabBar(
          controller: _controller,
          isScrollable: true,
          tabs:
            moviesTitles.map((title) { return Tab(text: title)}).toList()
          ,
        ),
  3. -1

    Sí, puedes hacerlo de esta manera también

     List<String> listTab = new List();
     map.forEach((key, val) {
      listTab.add(val);
     });
    
     //your widget//
     bottom: new TabBar(
      controller: _controller,
      isScrollable: true,
      tabs: listTab
      ,
    ),

Dejar respuesta

Please enter your comment!
Please enter your name here