Redux 使用flowtype的最佳实践重做操作?
我想用flowtype编写redux,但我对如何做到这一点有疑问 流式重排Redux 使用flowtype的最佳实践重做操作?,redux,flowtype,Redux,Flowtype,我想用flowtype编写redux,但我对如何做到这一点有疑问 流式重排 type动作类型= |“A” |“B” ; //符合通量标准作用的通用类型 键入Action以确保Redux操作的结构 类型Action声明了我们将在应用程序中使用的所有操作的具体类型 问题1:如何确保传递给ActionT的第一个类型是ActionType类型(或者至少应该是string类型)? 例如,不允许在中添加新类型'C',因为ActionType只接受'a'和'B' type动作类型= |“A” |“B” ;
type动作类型=
|“A”
|“B”
;
//符合通量标准作用的通用类型
键入Action以确保Redux操作的结构
类型Action
声明了我们将在应用程序中使用的所有操作的具体类型
问题1:如何确保传递给ActionT
的第一个类型是ActionType
类型(或者至少应该是string
类型)?
例如,不允许在中添加新类型'C'
,因为ActionType
只接受'a'
和'B'
type动作类型=
|“A”
|“B”
;
类型动作=
|行动
|行动
|ActionT//应引发错误
;
这有意义吗
问题2:如何使用flowtype和Immutable.js编写减缩器(和thunk
)?
我已经编写了一个buildReducer来绑定到初始状态
类型动作=
|行动
;
const buildReducer=(初始状态,reducerMap)=>
(状态=初始状态,动作)=>{
const reducer=reducemap[action.type];
返回(减速器)?减速器(状态、动作):状态;
};
const initialState=Immutable.fromJS({
选定国家/地区:“美国”
})
常数减缩器={
[“选择国家]:(国家、行动)=>{
//如何知道有效负载的类型是字符串类型?
//如何确保'state.set(…)`为键获取正确的值类型?
返回state.set('selectedCountry',action.payload)
}
}
const appReducer=buildReducer(初始状态,reducer)
我如何检查减速器中的有效载荷类型,以确定动作类型使用flowtype选择\u COUNTRY
如何使用flowtype check将有效负载值应用于不可变
状态?要回答问题1,可以使用有界多态性
// A generic type conforming to Flux Standard Action
type ActionT<A: ActionType, P> = {|
type: A,
payload?: P | Error,
error?: boolean,
meta?: mixed
|};
//符合Flux标准动作的通用类型
键入ActionT,然后键入减速器函数