我对flutter有点陌生,可以尝试flutter redux库,但是我坚持要有适当的中间件列表。

import 'package:flutter_app/incrementButtonScreen/IncrementButtonActions.dart';
import 'package:flutter_app/incrementButtonScreen/IncrementButtonLogicStates.dart';
import 'package:flutter_app/incrementButtonScreen/IncrementButtonState.dart';
import 'package:redux/redux.dart';

List<Middleware<IncrementButtonState>> createIncrementButtonStoreMiddleware = [
  TypedMiddleware<IncrementButtonState, Increment>(createIncrement("typed")),
  createIncrement("normal")
];

Middleware<IncrementButtonState> createIncrement(String logger) {
  return (Store store, action, NextDispatcher next) {
    print('\n ACTION $logger : ${new DateTime.now()}: $action');
    // some api call happening here and passing the APi call result next
    next(IncrementButtonLogicIncrementState(220, 15.0));
  };
}

问题是,我只能从普通的MiddleWare中获取日志,而不能从键入的版本中获取日志。我正在尝试重新设计计数器示例,并在fab上单击class Increment{}调度 Action store.dispatch(Increment);我在这里创建我的商店:
Store createIncrementButtonStore() {
  return new Store<IncrementButtonState>(_counterReducer,
      initialState: IncrementButtonState.initial(), middleware: createIncrementButtonStoreMiddleware);
}

当我用TypedMiddleware<IncrementButtonState, Increment>替换TypedMiddleware<IncrementButtonState, dynamic>时,我明白了
ACTION typed : 2018-08-06 12:04:45.778293: Increment
     ACTION normal : 2018-08-06 12:04:45.778411: Instance of 'IncrementButtonLogicIncrementState'

最佳答案

经过长时间的搜索,我发现我正在调度与Java中的Increment.class等效的Increment,我相信,在调度Increment()之后它可以正常工作

关于redux - Flutter类型的中间件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51705064/

10-11 14:29