Flutter 颤振和复飞动作

Flutter 颤振和复飞动作,flutter,redux,Flutter,Redux,在React中,您可以执行如下操作和调度 dispatch({ type: types.SOME_TYPE, data }) List<String> someReducer(List state, dynamic action) { switch (action['type']) { case 'SOME_TYPE': return [...state, action['data']]; default: return state;

在React中,您可以执行如下操作和调度

dispatch({ type: types.SOME_TYPE, data })
List<String> someReducer(List state, dynamic action) {
  switch (action['type']) {
    case 'SOME_TYPE':
      return [...state, action['data']];
    default:
      return state;
  }
}
然后在减速机上切换动作类型

switch (action.type) {
  case types.SOME_TYPE:
    return [ ...state, action.data ]

  default:
    return state
}
我会将传递给操作的任何内容添加到reducer中的存储中

我在《颤栗》中也尝试着这样做

const SOME_TYPE = 'SOME_TYPE';

void someAction(Store<AppState> store, data) {
  store.dispatch({ type: 'SOME_TYPE', data: data});
}
const SOME_TYPE='SOME_TYPE';
void someAction(存储、数据){
dispatch({type:'SOME_type',data:data});
}
其中,在分派操作时从视图传递数据

有可能在颤振中这样做吗?当我尝试此操作时,它会显示未定义的名称类型

减速器应该是这样的

dispatch({ type: types.SOME_TYPE, data })
List<String> someReducer(List state, dynamic action) {
  switch (action['type']) {
    case 'SOME_TYPE':
      return [...state, action['data']];
    default:
      return state;
  }
}
List someReducer(列表状态,动态动作){
开关(动作['type']){
案例“某些类型”:
返回[…状态,操作['data'];
违约:
返回状态;
}
}
它甚至不必有这样的形状或工作方式,我想要的是在存储中有一个数组初始化为空,someArray=[]


然后从视图中,我需要分派不同的操作,每个操作都会向该数组添加一个字符串,执行是正确的。这里的主要问题是类型比较。我建议:

  • 将类型设置为枚举

     enum Actions { SomeAction }
    
  • 尝试使用if语句,看看比较是否正常

     if(action == Actions.SomeAction) {
        return [...state, action['data']];
        return state
       }
    
  • 如果这样做有效,那么您可以使用诸如的包,以便在减速器中更容易地进行类型检查


  • 如果您为您的减速机发布一个最小的可复制代码示例,这将非常有帮助。是的,这是可能的flutter@abiudrn我添加了减速机和一些我想要实现的解释