草庐IT

dart - flutter scoped_model : Is it possible to pass data to a field of a model class?

coder 2023-07-22 原文

是否可以将数据传递到模型类的字段?从 onPressed 方法说起。它不接受带有参数 'onPressed: model.setNumber(25)' 的 onPressed 函数,或者有什么方法可以做到这一点? Redux 是否与这种类型的数据传递有关?

我提供了以下代码:

import 'package:flutter/material.dart';
import 'package:scoped_model/scoped_model.dart';

void main() {
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  @override
 Widget build(BuildContext context) {
    return new ScopedModel<CounterModel>(
      model: new CounterModel(),
      child: new MaterialApp(
        title: 'Flutter Demo',
        theme: new ThemeData(
          primarySwatch: Colors.green,
        ),
        home: new CounterHome('Scoped Model Demo'),
      ),
    );
  }
}

class CounterModel extends Model {
  int myNumber = 0;

  void setNumber(int number) {

    myNumber = number;

    notifyListeners();
  }
}

class CounterHome extends StatelessWidget {
  final String title;

  CounterHome(this.title);

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text(title),
      ),
      body: new Center(
        child: new Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            new Text(
                  'The new number is:',
                ),

            new ScopedModelDescendant<CounterModel>(
              builder: (context, child, model) => new Text(
                  model.myNumber.toString(),
                  style: Theme.of(context).textTheme.display1),
            ),
          ],
        ),
      ),

      floatingActionButton: new ScopedModelDescendant<CounterModel>(
        builder: (context, child, model) => new FloatingActionButton(
          onPressed: model.setNumber(25), //THIS GIVES AN ERROR
          tooltip: 'new number',
          child: new Icon(Icons.add),
        ),
      ),
    );
  }
}

最佳答案

你可以将你的 onPressed 包裹在一个闭包中,如下所示:

 onPressed: () => model.setNumber(25),

关于dart - flutter scoped_model : Is it possible to pass data to a field of a model class?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49925249/

有关dart - flutter scoped_model : Is it possible to pass data to a field of a model class?的更多相关文章

随机推荐