0

我只是玩了一下flutter,函数调用中的泛型让我感到困惑。考虑下面的调用:

final signinReducer = combineReducers<SignInState>([
  TypedReducer<SignInState,ValidateEmailAction>(_validateEmail),
  TypedReducer<SignInState,ValidatePasswordAction>(_validatePassword),
  TypedReducer<SignInState,ValidateLoginFields>(_validateLoginFieldsAction),
  TypedReducer<SignInState,ChangeLoadingStatusAction>(_changeLoadingStatusAction),
  TypedReducer<SignInState,EmailErrorAction>(_emailErrorAction),
  TypedReducer<SignInState,PasswordErrorAction>(_passwordErrorAction),
  TypedReducer<SignInState,SaveTokenAction>(_saveToken),
  TypedReducer<SignInState,ConfirmForgotPasswordAction>(_confirmCodeAction),
  TypedReducer<SignInState,CheckTokenAction>(_checkTokenAction),
  TypedReducer<SignInState,ClearErrorsAction>(_clearErrorsAction),
  TypedReducer<SignInState,ChangeScreenStateAction>(_changeScreenStateAction),
]);

...

SignInState _validateEmail(SignInState state, ValidateEmailAction action){
  return state.copyWith(email: action.email);
}

SignInState _validatePassword(SignInState state, ValidatePasswordAction action) =>
    state.copyWith(password: action.password);
....

那么泛型combineReducers<SignInState>表示什么?

同样最令人困惑的是这种语法:TypedReducer<SignInState, ValidateEmailAction>(_validateEmail). 第二种类型ValidateEmailAction在这里做什么?

4

1 回答 1

0

在 Android Studio 中按住 Ctrl 并单击 TypedReducer 或您不知道的任何其他类型,然后您可以在源文件中阅读更多信息。

在这种情况下:TypedReducer

/// 创建一个reducer,只有在调度的动作///匹配[Action]类型时才会执行。

于 2020-04-09T12:11:00.320 回答