无法将mobx集成到简单的Flutter应用中,从而增加点击次数计数器

时间:2019-03-22 13:41:33

标签: flutter mobx

我是新手,无法解决问题。

您的应用程序无法编译,因为无法建立依赖关系。     以下Dart文件:       /用户/ anirudhsharma392 /桌面/ flutter /测试/lib/counter/counter.dart     ...在导入中指的是以下库:       /Users/anirudhsharma392/Desktop/flutter/testing/lib/counter/counter.g.dart     不幸的是,该库似乎在您的文件系统上不存在。

import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:mobx/mobx.dart';

part 'counter.g.dart';

class Counter = CounterBase with _$Counter;

abstract class CounterBase implements Store {
  @observable
  int value = 0;

  @action
  void increment() {
    value++;
  }
}

class CounterExample extends StatefulWidget {
  const CounterExample({Key key}) : super(key: key);

  @override
  _CounterExampleState createState() => _CounterExampleState();
}

class _CounterExampleState extends State<CounterExample> {
  final _counter = Counter();

  @override
  Widget build(BuildContext context) => Scaffold(
        appBar: AppBar(
          title: const Text('Counter'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              const Text(
                'You have pushed the button this many times:',
              ),
              Observer(
                  builder: (_) => Text(
                        '${_counter.value}',
                        style: const TextStyle(fontSize: 20),
                      )),
            ],
          ),
        ),
        floatingActionButton: FloatingActionButton(
          onPressed: _counter.increment,
          tooltip: 'Increment',
          child: const Icon(Icons.add),
        ),
      );
}

1 个答案:

答案 0 :(得分:2)

Mobx使用代码生成来工作。您需要运行另一个命令来生成Mobx工作所需的文件

有两种方法可以生成这些文件:

  • flutter pub pub run build_runner build

  • flutter pub pub run build_runner watch

前者是一次性的。后者会持续监视您的资源以在需要更新时更新生成的文件

请确保将build_runner添加到您的依赖项中:

dev_dependencies:
  build_runner: ^1.1.2