我将所有状态保存在商店中,并使用redux-sagas处理所有异步操作。
因此,如果我有一个整数字段,更改其应该触发异步操作,我将TextInput值连接到商店中的实际值。 一旦用户更改了值并离开了字段,我就会发送一个动作。 这将由一个saga接收,它将调用API。但如果失败了,我需要恢复以前的值。处理这个问题的好方法是什么?
目前我在动作中传递旧值和新值,以便传奇可以放置一个新动作来恢复它,但这感觉就像一个kludge。以前遇到过这个吗?
答案 0 :(得分:0)
好吧,如果你想恢复旧值,你必须将它存储在某个地方。但是,我不会将旧值和新值都传递给您的操作,而是会记住您所在州的旧值。
您的州可能如下所示:
const state = {
value: 5,
oldValue: 4
};
然后,当值发生变化时,您会将oldValue
更新为value
并将value
更新为新值。如果API调用失败,您可以再次将value
设置为oldValue
。