我在Redux上使用immutability-helper
来更新我的React Native应用程序中的状态:
(state: Spec<UserState>, { payload }: { payload: {x: any} }) =>
update(state, { x: data:{ $set: x }, meta: { loading: { $set:false } } })
它可以工作,但是我一直在使用类似的模式(获取有效负载的特定键,使用对象更新state.thatKey.data
,将state.thatKey.meta.loading
更新为false
。我想封装此调用以最简单的方式,这样我可以这样称呼:myMethod({$set: x})
,在幕后它将返回一个HOF,它调用不可变性的update
并接受状态,从有效负载中提取x
(是在API调用reducer的外部提供的),并像上面显示的那样设置data
的{{1}}和meta
,都是以强类型方式进行的(因此,没有{{1} } s。
我坚信这是可能的,但是我对Immutability和Typescript还是陌生的,我在编写此类功能时遇到了麻烦。
我尝试了许多尝试检查state.x
签名的方法,而最近的电话是:
any
尽管我无法正常工作。我该怎么办?