我有一个关于React Native中reducer的简短问题。
为什么我必须这样写代码:
import { combineReducers } from 'redux';
export default combineReducers({
reducerKey : () => []
});
而不是这样:
import { combineReducers } from 'redux';
export default combineReducers({
reducerKey : []
});
基本上:为什么它必须是一个函数?
2条答案
按热度按时间b0zn9rqh1#
reducer的工作是应用一些输入来更新状态。reducer在执行操作后返回新的状态。它在一个输入上工作,并且可能在不同的输入上返回不同的状态,因此它是一个函数。
如果使用第二种方法,则生成一个固定的state值,这对于某些用例可能是有效的。
km0tfn4u2#
首先,你需要知道它们是什么。
() => []
是一个arrow function,它返回一个空数组,但[]
只是一个空数组。参见doc的注解:
reducers(对象):其值对应于需要组合成一个的不同归约函数的对象。
所以,你需要在reducer中传递一个函数。所以你将使用
() => []
而不是[]
。我从来没有在combineReducers中使用过这样的方法。这是用来组合不同的reducer的,比如:
前面的示例只是的别名: