作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试通过表单更新云 Firestore 中的数据。我需要在 TextFormField 中将已存储在 firestore 中的字段显示为 initialValue。
获取的数据由 print() 打印在控制台上,但它在 TextFormField 中不显示任何内容。
initialValue 与我用于 print() 的代码行相同。
数据也被正确获取。
这是代码:
var initData = {
'title': '',
};
void didChangeDependencies() async{
super.didChangeDependencies();
await Firestore.instance
.collection('${widget.collection}')
.document('${widget.title}')
.get()
.then((value) {
setState(() {
initData = {
'title': value.data['title'],
};
});
});
if (isValid) {
_formKey.currentState
.save();
}
widget.submitFn(
_title,)
}
@override
Widget build(BuildContext context) {
print(initData['title']); // the fetched data is printed in the console
return Form(
key: _formKey,
Column(
children: <Widget>[
TextFormField(
initialValue: initData['title'], // this doesnt show anything on the TextFormField,
decoration: InputDecoration(
labelText: 'Enter Product Name',
contentPadding: EdgeInsets.all(5)),
validator: (value) {
if (value.isEmpty) {
return 'Enter a the Product Title';
}
return null;
},
onSaved: (value) {
_title = value;
},
),
),
),
}
最佳答案
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
TextEditingController controller;
@override
void initState() {
// TODO: implement initState
super.initState();
controller = TextEditingController();
controller.text = "hiii"; //Here you can provide a default value when your app starts.
controller.addListener(() {
print(controller.text);
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: SafeArea(
child: Center(
child: Form(
child: TextField(
controller: controller,
),
),
),
),
),
);
}
}
关于firebase - 如何在 Cloud FireStore 的 TextFormField 中提供 initialValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61921429/
我是一名优秀的程序员,十分优秀!