我有一种方法可以处理将 TextFormField 字段的值保存在不同 Forms 变量中的逻辑,但是它们不会将值保存在验证 Forms 时,我通过参数传递的 String 变量。
这是我的变量从以下一种形式的声明:
//lazy load
var page = 1;
$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() >= $(document).height())
{
page++;
loadMoreData(page);
}
});
function loadMoreData(page){
$.ajax({
url: '?page=' + page,
type: "get",
beforeSend: function(){
$('.ajax-load').show();
}
}).done(function(data){
if(!data.html){
$('.ajax-load').html("No more records found");
$('.ajax-load').show();
return;
}
$('.ajax-load').hide();
$("#productLists").append(data.html);
}).fail(function(jqXHR, ajaxOptions, thrownError){
//error handle
});
}
这是方法:
final formKeyMotherboard = new GlobalKey<FormState>();
String _numInvMotherboard,
_marcaMotherboard,
_modeloMotherboard,
_tipoMotherboard,
_detallesMotherboard,
_fechaMotherboard;
final TextEditingController controllerNumInventarioMotherboard =
new TextEditingController();
final TextEditingController controllerMarcaMotherboard =
new TextEditingController();
final TextEditingController controllerModeloMotherboard =
new TextEditingController();
final TextEditingController controllerTipoMotherboard =
new TextEditingController();
final TextEditingController controllerDetallesMotherboard =
new TextEditingController();
final TextEditingController controllerFechaMotherboard =
new TextEditingController();
使用这种方法,我想减少代码,我有5个具有相同代码的表单,唯一改变的是从 TextEditingController获得的 TextFormField 的值与 controller.text 一起保存并保存,它告诉我其值为 null
答案 0 :(得分:0)
Dart没有“参考参数”或“ inout”参数。参数作为值传递,因此该函数无法更改该值来自的变量。
如果您需要更改某些内容,则可以创建一个包含要修改状态的可变对象,然后将其传递给函数,或者可以确保该函数可以直接看到变量(如果该函数通常是不可能的,是从多个位置使用的。)