通过要在函数内修改的参数传递变量

时间:2018-12-17 22:03:00

标签: dart flutter flutter-layout dart-pub flutter-test

我有一种方法可以处理将 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

1 个答案:

答案 0 :(得分:0)

Dart没有“参考参数”或“ inout”参数。参数作为值传递,因此该函数无法更改该值来自的变量。

如果您需要更改某些内容,则可以创建一个包含要修改状态的可变对象,然后将其传递给函数,或者可以确保该函数可以直接看到变量(如果该函数通常是不可能的,是从多个位置使用的。)