【发布时间】:2021-02-21 14:33:53
【问题描述】:
我正在尝试从strapi 获取数据以显示在我的颤振应用程序上。它显示类型'String'不是'index'类型'int'的子类型。
我想在这个 product_page.dart 组件上展示产品:
import 'package:flutter/material.dart';
import 'package:flutter_ecommerce/models/app_state.dart';
import 'package:flutter_ecommerce/widgets/product_item.dart';
import 'package:flutter_redux/flutter_redux.dart';
class ProductsPage extends StatefulWidget {
final void Function() onInit;
ProductsPage({this.onInit});
@override
ProductsPageState createState() => ProductsPageState();
}
class ProductsPageState extends State<ProductsPage> {
void initState() {
super.initState();
widget.onInit();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: _appBar,
body: Container(
decoration: gradientBackground,
child: StoreConnector<AppState, AppState>(
converter: (store) => store.state,
builder: (_, state) {
return Column(children: [
Expanded(
child: SafeArea(
top: false,
bottom: false,
child: GridView.builder(
itemCount: state.products.length,
gridDelegate:
SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2),
itemBuilder: (context, i) =>
ProductItem(item: state.products[i]))))
]);
})));
}
}
在我试图展示每个项目的这个组件上。 Product_item.dart:
import 'package:flutter/material.dart';
class ProductItem extends StatelessWidget {
final dynamic item;
ProductItem({this.item});
@override
Widget build(BuildContext context) {
final String pictureUrl = 'http://localhost:1337${item['picture']['url']}';
return GridTile(child: Image.network(pictureUrl, fit: BoxFit.cover));
}
}
【问题讨论】:
-
state.products是地图还是列表?
标签: android mongodb flutter dart strapi