简体   繁体   中英

The argument type 'Iterable<dynamic>' can't be assigned to the parameter type 'List<Widget>'

Hi guys please i'm trying to map a list of strings in my code but its is give me the error "The argument type 'Iterable' can't be assigned to the parameter type 'List'.". I'm trying to reproduce the result in the picture below. Here is the code below;

**quote.dart**

class Quote {

  String? text;
  String? author;

  
 

  
  Quote({ required this.text,required this.author });

}


**main.dart**

void main() {
  runApp(MaterialApp(home: QuoteList()));
}

class QuoteList extends StatefulWidget {
  const QuoteList({Key? key}) : super(key: key);

  @override
  State<QuoteList> createState() => _QuoteListState();
}

class _QuoteListState extends State<QuoteList> {

  @override
  List<dynamic> quotes = [
    //"Quote" is the the name of the class of the second dart file.
    Quote(
        author: "Eminem",
        text:
            "You better lose yourself in music the moment you own it never let it go"),
    Quote(
        author: "Walt Disney",
        text: "The way to get started is to quit talking and begin doing."),
    Quote(
        author: "Mother Teresa",
        text:
            "Spread love everywhere you go. Let no one ever come to you without leaving happier")

    //
    //     "
    //     ". -"
  ];
  
  
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.grey[200],
      appBar: AppBar(
        title: Text("Awesome Killer Quotes",
            style: TextStyle(
              color: Colors.grey[700],
            )),
        centerTitle: true,
        backgroundColor: Colors.yellowAccent[400],
      ),
      body: Column(
     children: quotes.map(children: quotes.map((quote) => Text('${quote.text} - 
             ${quote.author}')).toList(),
         // (quote) => Text(quote.text + "-" + quote.author).toList(),
         // ((quote) => quoteTemplate(quote).toList()),
        ),
        // 

        //return Text('>>'+quote.text+', '+quote.author);
      ),
    );
  }
}

If anybody can help me I will really appreciate it PS the error is in the main.dart file

Expected result of the code

just keep it simple

Solution:

 Column( children: quotes.map((quote) => Text('${quote.text} ' '- ${quote.author}')).toList() );

so try this

List<Quote> quotes = [
    //"Quote" is the the name of the class of the second dart file.
    Quote(
        author: "Eminem",
        text:
            "You better lose yourself in music the moment you own it never let it go"),
    Quote(
        author: "Walt Disney",
        text: "The way to get started is to quit talking and begin doing."),
    Quote(
        author: "Mother Teresa",
        text:
            "Spread love everywhere you go. Let no one ever come to you without leaving happier")
  ];

as your list

then your widget

return Scaffold(
      backgroundColor: Colors.grey[200],
      appBar: AppBar(
        title: Text("Awesome Killer Quotes",
            style: TextStyle(
              color: Colors.grey[700],
            )),
        centerTitle: true,
        backgroundColor: Colors.yellowAccent[400],
      ),
      body: Column(
     children: quotes.map((e)
                         =>Text('${e.text}')
         ).toList(),
     ),
    );

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM