相关疑难解决方法(0)

Flutter 函数参数按引用传递

我对 Dart 和 Flutter 有疑问。所以我试图重构一些代码,但我陷入了引用问题。

class _LoginPageState extends State<LoginPage> {
  String _email;
  String _password;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: new AppBar(
          title: new Text("Login Page"),
        ),
        body: new Container(
          padding: new EdgeInsets.all(16),
          child: new Form(
              child: new Column(
                  crossAxisAlignment: CrossAxisAlignment.stretch,
                  children: buildInputs()
              )),
        ));
  }

  Widget buildInput(String label, String val) {
    return new TextFormField(
      decoration: new InputDecoration(
        labelText: label,
      ),
      validator: (value) => value.isEmpty ? "$label can't be empty" : null,
      onSaved: (value) => val = value, …
Run Code Online (Sandbox Code Playgroud)

dart flutter

9
推荐指数
1
解决办法
2万
查看次数

Dart 中输出或引用参数的等效代码

在 Dart 中,我如何最好地编写等效于(不可变/值/非对象)输出或引用参数的代码

例如在 C#-ish 中,我可能会编码:

function void example()
{
  int result = 0;
  if (tryFindResult(anObject, ref result))
    processResult(result);
  else
    processForNoResult();
}

function bool tryFindResult(Object obj, ref int result)
{
  if (obj.Contains("what I'm looking for"))
  {
    result = aValue;
    return true;
  }
  return false;  
}
Run Code Online (Sandbox Code Playgroud)

dart

7
推荐指数
1
解决办法
2527
查看次数

将状态变量引用传递给函数

我想重用一个函数来更新StatefulWidget. 更新哪个状态变量应取决于作为参数传递给函数的变量引用。这是一些示例代码:

class _MyScreenState extends State<MyScreen> {
  String stateVariable = 'initial value';

  void update(String variableRef) {
    setState((() {
      variableRef = 'updated value';
    })
  }

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () => update(stateVariable),
      child: Text(stateVariable)
    )
  }
}
Run Code Online (Sandbox Code Playgroud)

函数中状态设置成功setState,但遗憾的是状态变化并未在 UI 中体现,即build函数未再次调用。

我的期望是应该更新,因为我通过引用stateVariable将变量传递给函数。update这个假设是错误的吗?

您知道一种通过引用传递状态变量以便可以通过函数幂等更新它的方法吗?

dart flutter

0
推荐指数
1
解决办法
1084
查看次数

标签 统计

dart ×3

flutter ×2