Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于redux原则的几个问题_Redux - Fatal编程技术网

关于redux原则的几个问题

关于redux原则的几个问题,redux,Redux,我读了一些关于redux的教程,但我仍然对redux有一些疑问: 1) 如果还原程序不改变状态,而是返回一个新状态,那么新信息是如何保存的 2) 当我更改数据时,最建议将API请求保留回服务器的位置是什么?减速机?商店?或者其他地方 非常感谢 在还原器中,您总是复制当前状态,只更新克隆的状态。通常您会看到一个排列操作符: return { ...state, foo: 'new foo' } 如果我们一步一步地做到这一点: const newState = { ...state } // co

我读了一些关于redux的教程,但我仍然对redux有一些疑问:

1) 如果还原程序不改变状态,而是返回一个新状态,那么新信息是如何保存的

2) 当我更改数据时,最建议将API请求保留回服务器的位置是什么?减速机?商店?或者其他地方


非常感谢

在还原器中,您总是复制当前状态,只更新克隆的状态。通常您会看到一个排列操作符:

return { ...state, foo: 'new foo' }
如果我们一步一步地做到这一点:

const newState = { ...state } // copy the current state
newState.foo = 'new foo'
return newState
您还可以使用
Object.assign()
复制状态:

const newState = Object.assign({}, state)
所有其他信息将被保留,因为新状态总是从以前的状态复制而来

API请求通常由action创建者处理。因为它们是异步的,所以需要中间件来处理它们,比如

减速器应该是纯同步的,您不应该在减速器中发送API请求。如果您使用React,那么另一个调用API的地方就是您的组件。这样做完全没问题,尤其是你正在开发一个小应用程序。但大多数时候,您希望将UI和逻辑分开,这就是为什么我们使用动作创建者

对于异步动作创建者,您可以查看本章: