Не могу интегрировать mobx в простое приложение флаттера, которое увеличивает счетчик на клике - PullRequest
0 голосов
/ 22 марта 2019

Я новичок во флаттере и не могу решить проблему.

Невозможно скомпилировать ваше приложение, поскольку не удалось установить его зависимости.Следующий файл Dart: /Users/anirudhsharma392/Desktop/flutter/testing/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 Ответ

2 голосов
/ 22 марта 2019

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
...