我尝试在列表中添加TextField对象,但出现错误“无法将参数类型'PlayerItem'分配给参数类型'TextField'。
我创建了一个TextField列表(_playerList
):
List<TextField> _playerList = new List();
我创建了一个用于创建TextField对象的类:
class PlayerItem extends StatelessWidget {
//constructor
PlayerItem();
@override
Widget build(BuildContext context) {
return TextField(
decoration: InputDecoration(
prefixIcon: const Icon(Icons.person),
hintText: "Player",
counterText: "",
),
);
}
}
当我尝试在列表中添加项目时,出现错误:
_playerList.add(new PlayerItem()),
答案 0 :(得分:2)
这是预期的类型错误。
您将列表声明为List<TextField>
,然后尝试插入PlayerItem
。
这样的结果是您应该使用PlayerItem
输入列表:
List<PlayerItem> _playerList = <PlayerItem>[];
或者,您也可以使用更通用的类型,即TextField
和PlayerItem
的超类型,例如可以是Widget
:
List<Widget> _playerList = <Widget>[];