Flutter 是否将保存的传递给TextFormField小部件?
为了创建返回TextFormField的可重用小部件,是否有方法在调用onSaved时传递需要更新的字段 考虑以下地图:Flutter 是否将保存的传递给TextFormField小部件?,flutter,Flutter,为了创建返回TextFormField的可重用小部件,是否有方法在调用onSaved时传递需要更新的字段 考虑以下地图: Map myMap = { 'a': 1, 'b': 2, } 还有一个简单的构建方法: Widget build(BuildContext context) { return _buildTile(myMap.a); } 还有我的带有特定装饰(未显示)的常用小部件,它在许多地方都有使用 Widget _buildTile(in
Map myMap = {
'a': 1,
'b': 2,
}
还有一个简单的构建方法:
Widget build(BuildContext context) {
return _buildTile(myMap.a);
}
还有我的带有特定装饰(未显示)的常用小部件,它在许多地方都有使用
Widget _buildTile(int fieldIn) {
return TextFormField(
onSaved: (value) => print('Tile onSaved: $value'), //how to update myMap.a?
);
}
dart中的非基本体通过引用传递,这包括贴图。因此,您可以:
Widget _buildTile(Map map, dynamic key) {
return TextFormField(
onSaved: (value) => map[key] = value,
);
}
谢谢你,卢卡斯。这满足了我提供的示例,但是如果它是一个对象而不是一个地图呢?那我怎么才能拿到钥匙呢
main(){objmyobj=Obj(a:1,b:2,);doPrint(myObj,'a');}doPrint(objo,字符串键){print(o);print(o[key]);}类Obj{Obj({this.a,this.b,});inta;intb;}
你来自Javascript吗?您可能仍然是指地图
。Map
可以有任何类型的键。请注意,在我给出的示例中,关键参数是动态的。这不起作用。将我先前评论中的代码剪切并粘贴到dartpad中。不,它不适用于类成员,只适用于映射。另一种方法(可能是更好的做法)是将onSaved
作为自定义小部件的参数传递给TextFormField
。这正是我所担心的(如本期标题所示):(我希望有一个更优雅的解决方案。编码时看起来很难看。再次感谢您的帮助。我非常感谢您的回复。)