我有一个关于React Native中的reducer的简短问题
为什么我必须编写如下代码:
import { combineReducers } from 'redux';
export default combineReducers({
reducerKey : () => []
});
而不是这个:
import { combineReducers } from 'redux';
export default combineReducers({
reducerKey : []
});
基本上:为什么它必须是一个功能?谢谢!
首先,你需要知道它们是什么?
() => []
是一个arrow function,返回一个空数组,但[]
只是一个空数组。
查看doc的note:
reducers(Object):一个对象,其值对应于需要合并为一个的不同缩减函数。
所以,你需要在reducer中传递一个函数。所以你将使用() => []
而不是[]
。
我从未使用过combineReducers。这用于组合不同的减速器,如:
combineReducers({
reducer1,
reducer2
})
前面的示例只是一个别名:
combineReducers({
reducer1: reducer1,
reducer2: reducer2
})
reducer的工作是应用一些输入来更新状态。 reducer在执行操作后返回新状态。它适用于输入,可能会在不同的输入上返回不同的状态,因此它是一个函数。
如果使用第二种方法,则生成固定的state值,这对某些用例可能有效。但一般来说,你想要使用一个函数。