El tipo de argumento ‘List‘ no se puede asignar al tipo de parámetro ‘List‘. ¿Qué estoy haciendo mal? Baby Flutterer Aquí.
Estoy tratando de crear una lista de tipo User
, y si esa lista no está vacía, proporcionar el siguiente usuario en la lista. He leído tantos documentos de Flutter como mi cerebro puede retener, y estoy perdido.
“`
class _SwipePageState extends State
getUsers() async {
Box box = await Hive.openBox(‘usersBox’);
swipableUsers = box.values.toList();
}
}
List swipableUsers =
@override
Widget build(BuildContext context) => Scaffold(
appBar: PreferredSize(
preferredSize: const Size.fromHeight(100),
child: Container(color: Colors.transparent),
),
body: Padding(
padding: const EdgeInsets.all(8),
child: Column(
children: [
swipableUsers.isEmpty
? const Text(‘No hay más usuarios’)
: Stack(children: swipableUsers.map(buildUser).toList()),
Expanded(child: Container()),
const BottomButtonsWidget()
],
),
),
);
Widget buildUser(User currentUser) {
int userIndex = swipableUsers.indexOf(currentUser);
bool isUserInFocus = userIndex == swipableUsers.length – 1;
//Hacer otras cosas con currentUser
}
El error se encuentra en : Stack(children: swipableUsers.map(buildUser).toList()),
y el error es el título de esta pregunta, No se puede asignar el tipo de argumento 'Lista
¿Hay alguna posibilidad de salvar mi pequeña aplicación, o he enredado las cosas tanto que es inútil? Gracias de antemano por sus respuestas 🙂
davy.ai
Para corregir el error, debes indicarle explícitamente al compilador que la salida de
swipableUsers.map(buildUser)
es de tipoList<widget>
. Puedes hacer esto agregando una anotación de tipo a la expresión:Esto debería resolver el error de tipo y permitir que tu aplicación se compile exitosamente.