我对React Native中的reducer有一个简短的问题
为什么我必须这样编写代码:
import { combineReducers } from 'redux';
export default combineReducers({
reducerKey : () => []
});
代替此:
import { combineReducers } from 'redux';
export default combineReducers({
reducerKey : []
});
基本上:为什么它必须是一个函数? 谢谢!
答案 0 :(得分:3)
Reducer的工作是应用一些输入来更新状态。执行操作后,reducer返回新状态。它对输入起作用,并且在不同的输入上可能返回不同的状态,因此它是一个函数。
如果使用第二种方法,则会生成一个固定的state值,这对于某些用例可能是有效的。但通常,您会想使用一个函数。
答案 1 :(得分:2)
首先,您需要知道它们是什么?
() => []
是一个arrow function,它返回一个空数组,但是[]
只是一个空数组。
请参阅文档的note:
reducers(Object):一个对象,其值对应于需要组合为一个的不同归约函数。
因此,您需要在reducer中传递一个函数。因此,您将使用() => []
而不是[]
。
我从没用过CombineReducers这样的东西。这用于组合不同的减速器,例如:
combineReducers({
reducer1,
reducer2
})
前面的示例只是以下内容的别名:
combineReducers({
reducer1: reducer1,
reducer2: reducer2
})