【问题标题】:In Flutter The argument type 'List<InkWell>?' can't be assigned to the parameter type 'List<Widget>'在 Flutter 中的参数类型为 'List<InkWell>?'不能分配给参数类型“List<Widget>”
【发布时间】:2021-07-27 17:01:00
【问题描述】:

我看到此错误参数类型“列表?”不能分配给参数类型“列表”。 我尝试使用其他方式解决此问题,但无法解决此问题。

import packages here

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

  @override
  _HomepageState createState() => _HomepageState();
}

class _HomepageState extends State<Homepage> {
  final apiURL = Uri.parse(
      'api url here');
  ExerciseJson? exerciseJson;

  @override
  void initState() {
    setState(() {
      getExercises();
    });
    super.initState();
  }

  void getExercises() async {
    http.Response response = await http.get(apiURL);
    var body = response.body;
    var decodeJson = jsonDecode(body);
    // print(body);
    // return decodeJson();
    exerciseJson = ExerciseJson.fromJson(decodeJson);
    setState(() {});
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Testing..."),
      ),
      body: Container(
        child: exerciseJson != null
            ? ListView(
              // "${exerciseJson?.exercises?[index].thumbnail}"
                children: exerciseJson?.exercises?.map((e) {
                  return InkWell(
                    onTap: () {},
                    child: Container(
                      margin: EdgeInsets.all(10),
                      // decoration:
                      //     BoxDecoration(borderRadius: BorderRadius.circular(16)),
                      child: Stack(
                        children: [
                          ClipRRect(
                            borderRadius: BorderRadius.circular(6),
                            child: FadeInImage(
                              image: NetworkImage(
                                  e.thumbnail),
                              placeholder: AssetImage(""),
                              width: MediaQuery.of(context).size.width,
                              height: 250,
                              fit: BoxFit.cover,
                            ),
                          ),
                        ],
                      ),
                    ),
                  );
                }).toList(),
              )
            : LinearProgressIndicator(),
      ),
    );
  }
}

我看到此错误参数类型“列表?”不能分配给参数类型“列表”。 我尝试使用其他方式解决此问题,但无法解决此问题。

【问题讨论】:

  • 试着用Container包裹InkWell
  • 不,这不是我的问题

标签: flutter dart


【解决方案1】:

尝试将exerciseJson?.exercises?.map 替换为exerciseJson!.exercises.map, 它是否解决了错误。否则你能分享模型吗?

【讨论】:

  • 谢谢。我替换使用儿童:exerciseJson!.exercises!.map((e) 和图像:NetworkImage("${e.thumbnail}"),
猜你喜欢
  • 2021-07-04
  • 2021-10-24
  • 2021-09-13
  • 2021-06-04
  • 2021-06-26
  • 2021-12-10
  • 2022-11-05
  • 2021-11-05
  • 2020-08-26
相关资源
最近更新 更多