相关疑难解决方法(0)

Flutter Riverpod StateNotifierProvider:仅观察模型部分的更改

我有一个这样的模型:

class TimerModel {
  const TimerModel(this.timeLeft, this.buttonState);
  final String timeLeft;
  final ButtonState buttonState;
}

enum ButtonState {
  initial,
  started,
  paused,
  finished,
}
Run Code Online (Sandbox Code Playgroud)

这是 StateNotifierProvider:

class TimerNotifier extends StateNotifier<TimerModel> {
  TimerNotifier() : super(_initialState);

  static const int _initialDuration = 10;
  static final _initialState = TimerModel(
    _durationString(_initialDuration),
    ButtonState.initial,
  );

  final Ticker _ticker = Ticker();
  StreamSubscription<int> _tickerSubscription;

  void start() {
    if (state.buttonState == ButtonState.paused) {
      _tickerSubscription?.resume();
      state = TimerModel(state.timeLeft, ButtonState.started);
    } else {
      _tickerSubscription?.cancel();
      _tickerSubscription =
          _ticker.tick(ticks: _initialDuration).listen((duration) {
        state = TimerModel(_durationString(duration), ButtonState.started);
      }); …
Run Code Online (Sandbox Code Playgroud)

dart flutter riverpod

4
推荐指数
1
解决办法
3714
查看次数

标签 统计

dart ×1

flutter ×1

riverpod ×1