我对飞镖很陌生,想知道这个“包装”功能到底能做什么吗? 就像使用“ connectUnits(userRepo)”的普通函数一样被调用:
void Function(
Store<AppState> store,
dynamic action,
NextDispatcher next,
) connectUnits(
UnitsRepository unitsRepository,
) {
return (store, action, next) {
unitsRepository.units().listen((units) {
store.dispatch(LoadUnitsAction(units));
next(action);
});
};
}
谢谢! 迈克尔
答案 0 :(得分:2)
功能是Dart中的一等公民。您的示例定义了一个名为connectUnits
的函数,该函数返回带有签名void Function(Store<AppState> store, dynamic action, NextDispatcher next)
的函数。
为了更好地理解,您的代码与以下代码相同:
// define a kind of function
typedef MyFunction = void Function(Store<AppState> store, dynamic action, NextDispatcher next);
MyFunction connectUnits(UnitsRepository unitsRepository) {
return (store, action, next) {
unitsRepository.units().listen((units) {
store.dispatch(LoadUnitsAction(units));
next(action);
});
};
}