#android #ios #flutter #dart #mobile
Вопрос:
Я пытаюсь использовать список в виджете Listview в flutter, но я продолжаю получать сообщение об ошибке, в котором говорится, что мне нужен список[Виджет]. Все ответы в Интернете основаны на картах, и я все еще новичок в Флаттере. Кто-нибудь может показать мне, как использовать функцию карты для этого или как преобразовать список [Динамический] в список [Виджет]?
Вот мой код:
import 'package:flutter/material.dart';
class NextPage extends StatefulWidget {
final List value;
NextPage({Key key, this.value}) : super(key: key);
@override
_NextPageState createState() => new _NextPageState();
}
class _NextPageState extends State<NextPage> {
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text("Reminders"),
),
body: ListView(
children: widget.value,
),
);
}
}
Комментарии:
1. Попробуй
children: widget.value as List<Widget>
Ответ №1:
Согласно обсуждению, value
List<String>
в таком случае, чтобы передать его дальше ListView
, нам нужно использовать эти данные и преобразовать их в виджет.
Здесь мы используем value
и создаем Text
виджет с его помощью
import 'package:flutter/material.dart';
class NextPage extends StatefulWidget {
final List<String> value;
NextPage({Key key, this.value}) : super(key: key);
@override
_NextPageState createState() => new _NextPageState();
}
class _NextPageState extends State<NextPage> {
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text("Reminders"),
),
body: ListView(
children: widget.value.map((e) => Text(e)).toList(),
),
);
}
}
Решает ли это проблему?
Комментарии:
1. Это, казалось, не исправило проблему, я все еще получаю ту же ошибку
2. что вы передаете в качестве ценности, можете ли вы включить это? также попробуйте
flutter clean
запустить еще раз.3. решает ли это проблему или какие ошибки вы в настоящее время получаете?
4. Когда я использую метод приведения типов, ошибка говорит
type 'List<dynamic>' is not a subtype of type 'List<Widget>' in type cast
, что я передаю список строк, которые я получаю от функции ожидания, подобной этой:_remindersList = await _analyze(Words);
5. хорошо , вы просто передаете список строк по адресу
NextPage
, я прав?