【发布时间】:2021-03-02 00:18:15
【问题描述】:
我正在从 api 数据创建一个接口,一切正常,但是当我向我的 TextEditingController 列表添加一个值时,出现“RangeError (index): Invalid value: Only valid value is 0: 1”的错误,并且我不知道为什么会发生这种情况,如果您能帮助我,我将不胜感激
这是我的代码。
List<TextEditingController> openQuest = List<TextEditingController>();
Widget _questions(){
return FutureBuilder(
future: widget.questSect,
builder: (BuildContext context, AsyncSnapshot snapshot){
if(snapshot.hasData){
return Container(
child: ListView.builder(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: snapshot.data.length,
itemBuilder: (BuildContext context, int index){
if(snapshot.data[index]['tipo_pregunta'] == 2){
return Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: <Widget>[
SizedBox(height:5),
Container(
width: MediaQuery.of(context).size.width * .88,
child: Text(
snapshot.data[index]['pregunta'],
textAlign: TextAlign.left,
style: TextStyle(
color: SECONDARY_TEXT,
fontSize: 16,
)
),
),
SizedBox(height: 5),
],
),
);
}else{
openQuest.add(TextEditingController());
return Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: <Widget>[
SizedBox(height:5),
Container(
width: MediaQuery.of(context).size.width * .88,
child: Text(
snapshot.data[index]['pregunta'],
textAlign: TextAlign.left,
style: TextStyle(
color: SECONDARY_TEXT,
fontSize: 16,
)
),
),
SizedBox(height: 5),
InputCustom(
cont: openQuest.length < 0 ? TextEditingController() : openQuest[index],
icono: null,
labelText: null,
validate: (String val){
if(val.isEmpty){
return 'Se debe contestar la pregunta';
}
return null;
},
max: 100,
)
],
),
);
}
},
),
);
}else if(snapshot.hasError){
return Center(
child: Text('Error al traer las preguntas.'),
);
}
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
SizedBox(
child: CircularProgressIndicator(),
width: 60,
height: 60,
),
const Padding(
padding: EdgeInsets.only(top: 16),
child: Text('Obteniendo preguntas...'),
)
]
),
);
},
);
}
【问题讨论】:
标签: flutter