작성
·
407
0
아래처럼 itemBuilder를 넣어봤는데요,
Widget build(BuildContext context) {
return PaginationListView(
provider: restaurantNotifierProvider, itemBuilder: itemBuilder<RestaurantModel>);
}
Widget itemBuilder<T extends IModelWithId>(BuildContext context, int index, T t) {
t as RestaurantModel;
return GestureDetector(
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (_) {
return RestaurantDetailScreen(
id: t.id,
);
},
),
);
},
child: RestaurantCard.fromModel(
restaurantModel: t,
),
);
}
}
아래와 같은 에러가 나옵니다
type '(BuildContext, int, RestaurantModel) => Widget' is not a subtype of type '(BuildContext, int, IModelWithId) => Widget'
근데, RestaurantModel implements IModelWithId라고 해주었으니 상속관계가 있는데 왜 subtype이 아니라는걸까요?
답변 1
0
안녕하세요!
제가 테스트해봤는데 아래 상황이 맞나요?
void main() {
runner<Model>(Model());
}
class ITest{}
class Model implements ITest{}
runner<T extends ITest>(T t){
print(t);
}
위 코드는 정상적으로 작동되긴합니다.