Forms 渲染颤振TextFormBloc时出现问题-未渲染

Forms 渲染颤振TextFormBloc时出现问题-未渲染,forms,flutter,rendering,flutter-layout,Forms,Flutter,Rendering,Flutter Layout,我正在UI中使用TextFieldBlocBuilder。我已经对此进行了一段时间的故障排除,但不明白为什么textfieldbloc没有出现在我的应用程序中。我用简单文本包围了它,这两个文本字段出现了,但textfieldbloc没有。我包括了一段代码,如果有人能告诉我为什么或者给我指明要看的方向,我将不胜感激……我被难住了。(另外,我已经确认我正在填充textfieldbloc的字段实际上有一个值。) @覆盖 小部件构建(构建上下文){ 回程卡( 颜色:颜色。蓝色[100], 边距:所有常数

我正在UI中使用TextFieldBlocBuilder。我已经对此进行了一段时间的故障排除,但不明白为什么textfieldbloc没有出现在我的应用程序中。我用简单文本包围了它,这两个文本字段出现了,但textfieldbloc没有。我包括了一段代码,如果有人能告诉我为什么或者给我指明要看的方向,我将不胜感激……我被难住了。(另外,我已经确认我正在填充textfieldbloc的字段实际上有一个值。)

@覆盖
小部件构建(构建上下文){
回程卡(
颜色:颜色。蓝色[100],
边距:所有常数边集(8.0),
孩子:填充(
填充:常数边集全部(8.0),
子项:列(mainAxisSize:mainAxisSize.min,子项:[
划船(
//第1行
mainAxisAlignment:mainAxisAlignment.spaceBetween,
儿童:[
填充物(
填充:常数边集全部(8.0),
子:文本(
“成分#${IngreditIndex+1}”,
样式:TextStyle(字体大小:20),
),
),
图标按钮(
图标:图标(Icons.delete),
onPressed:OnRemoveCredit,
),
],
),
//成分属性
新专栏(
mainAxisSize:mainAxisSize.min,
儿童:[
卡片(
//颜色:颜色。灰色[100],
颜色:颜色,紫色,
孩子:填充(
填充:常数边集全部(8.0),
子:列(
mainAxisSize:mainAxisSize.min,
儿童:[
文本(“Yo”),
TextFieldBlocBuilder(
最大长度:30,
maxLines:1,
textInputAction:textInputAction.next,
textFieldBloc:
ingredientField.ingredientName,
装饰:输入装饰(
labelText:“成分名称”,
),
),
文本(“Yo-2”),
]))),
],
),
]),
));
}
}
以下是BlocBuilder代码:

                        // Ingredient Card Start
                        BlocBuilder<ListFieldBloc<IngredientFieldBloc>,
                            ListFieldBlocState<IngredientFieldBloc>>(
                          bloc: formBloc.ingredients,
                          builder: (context, state) {
                            if (state.fieldBlocs.isNotEmpty) {
                              return
                                  // Constrained Box Start
                                  ConstrainedBox(
                                      constraints: BoxConstraints(
                                          maxHeight: 800,
                                          minHeight: 56.0,
                                          maxWidth: 800),
                                      child:
                                          // Constrained Box End
                                          ListView.builder(
                                        shrinkWrap: true,
                                        physics:
                                            const NeverScrollableScrollPhysics(),
                                        itemCount: state.fieldBlocs.length,
                                        itemBuilder: (context, i) {
                                          return IngredientCard(
                                            ingredientIndex: i,
                                            ingredientField:
                                                state.fieldBlocs[i],
                                            onRemoveIngredient: () =>
                                                formBloc.removeIngredient(i),
                                          );
                                        },
                                      )

                                      );
                            } else {
                              logger.d("_RecipeUpdate:xxx - state.fieldBlocks is empty");
                            }
                            return Container();
                          },
                        ),
//配料卡开始
BlocBuilder(
集团:形成集团,
生成器:(上下文、状态){
if(state.fieldBlocs.isNotEmpty){
返回
//受约束的长方体起点
约束盒(
约束:BoxConstraints(
最大高度:800,
身高:56.0,
最大宽度:800),
儿童:
//约束盒端
ListView.builder(
收缩膜:对,
物理学:
常数NeverScrollableScrollPhysics(),
itemCount:state.fieldBlocs.length,
itemBuilder:(上下文,i){
返回信用卡(
IngreditIndex:我,
IngreditField:
州域集团[i],
OnRemoveCredit:()=>
formBloc.RemoveIncident(一),
);
},
)
);
}否则{
logger.d(“_RecipeUpdate:xxx-state.fieldBlocks为空”);
}
返回容器();
},
),

这是该小部件在应用程序中呈现的内容(我希望textFieldBloc出现在“Yo”和Yo-2之间):

您可以共享TextFieldBlocBuilder的代码吗?上面添加了Blockbuilder代码。如果(state.fieldBlocs.isNotEmpty),您的生成器将返回什么
此条件未满足?我认为您的
状态.fieldBlocs
为空。我很抱歉……我的代码的复制粘贴遗漏了“if(state.fieldBlocs.isNotEmpty)”的else条件。我将其添加回上面的代码块中。此外,在该条件下,它没有失败,因为它实际上正在调用我的“InCreditCard”“小部件…这就是我分享的屏幕截图中呈现的内容。呈现的文本字段围绕TextFieldBlocBuilder。它们已呈现,但TextFieldBlocBuilder未呈现。您可以共享TextFieldBlocBuilder的代码吗?上面添加了Blockbuilder代码。如果(state.fieldBlocs.isNotEmpty),生成器将返回什么
未满足此条件?我认为您的
state.fieldBlocs
为空。很抱歉……我的代码的复制粘贴遗漏了“if(state.fieldBlocs.isNotEmpty)”的else条件。我在上面的代码块中添加了它。而且,在这种情况下它并没有失败,因为它实际上是在调用我的“IngreditCard”小部件……这就是我在分享的屏幕截图中呈现的内容。呈现的文本字段围绕TextFieldBlocBuilder。它们被渲染,但TextFieldBlocBuild
                        // Ingredient Card Start
                        BlocBuilder<ListFieldBloc<IngredientFieldBloc>,
                            ListFieldBlocState<IngredientFieldBloc>>(
                          bloc: formBloc.ingredients,
                          builder: (context, state) {
                            if (state.fieldBlocs.isNotEmpty) {
                              return
                                  // Constrained Box Start
                                  ConstrainedBox(
                                      constraints: BoxConstraints(
                                          maxHeight: 800,
                                          minHeight: 56.0,
                                          maxWidth: 800),
                                      child:
                                          // Constrained Box End
                                          ListView.builder(
                                        shrinkWrap: true,
                                        physics:
                                            const NeverScrollableScrollPhysics(),
                                        itemCount: state.fieldBlocs.length,
                                        itemBuilder: (context, i) {
                                          return IngredientCard(
                                            ingredientIndex: i,
                                            ingredientField:
                                                state.fieldBlocs[i],
                                            onRemoveIngredient: () =>
                                                formBloc.removeIngredient(i),
                                          );
                                        },
                                      )

                                      );
                            } else {
                              logger.d("_RecipeUpdate:xxx - state.fieldBlocks is empty");
                            }
                            return Container();
                          },
                        ),