我已经成功地将Flutter和Firestore连接起来,制作了一个动态问卷。
我的自定义Question小部件只是一个包含问题字符串的Text(),以及一个Slider(),让用户可以从1到5给出答案。
现在问题已经显示出来了,我该如何获取值呢?
以下是我的代码:
var questions = <Widget>[];
//Async read to the DB
Future query() async {
var snap = await Firestore.instance
.collection("Forms")
.document(formID)
.get();
var arr = <Widget>[]; //just a temp holder of the widgets
for(String q in list){
arr.add(Question(min: 1.0, max: 5.0, question: q, value: 1.0,));
}
setState(() {
questions = arr;
});
}
然后在我正在渲染的构建中:
Scaffold(
body:Container(
child:Column(
children: <Widget>[
Text("Title"),
Column(
children: questions,
),
RaisedButton(
onPressed: () => sendFeedback(),
color: Colors.redAccent,
textColor: Colors.white,
child: Text("Send")
]
)
sendFeedback()函数的代码应该怎么写?我想获取我children列表中所有滑块的值,然后只使用一次调用将这些值写入Firestore数据库。
StreamController.broadcast()
。当你这样做时,该流可以在多个位置被监听。否则,你只能监听它一次。 - Sebastian