为什么我们使用()=> []而不是[]?

问题描述 投票:1回答:2

我有一个关于React Native中的reducer的简短问题

为什么我必须编写如下代码:

import { combineReducers } from 'redux';

export default combineReducers({
    reducerKey : () => []
});

而不是这个:

import { combineReducers } from 'redux';

export default combineReducers({
    reducerKey : []
});

基本上:为什么它必须是一个功能?谢谢!

javascript reactjs react-native redux
2个回答
2
投票

首先,你需要知道它们是什么?

() => []是一个arrow function,返回一个空数组,但[]只是一个空数组。


查看doc的note

reducers(Object):一个对象,其值对应于需要合并为一个的不同缩减函数。

所以,你需要在reducer中传递一个函数。所以你将使用() => []而不是[]


我从未使用过combineReducers。这用于组合不同的减速器,如:

combineReducers({
  reducer1,
  reducer2
})

前面的示例只是一个别名:

combineReducers({
  reducer1: reducer1,
  reducer2: reducer2
})

3
投票

reducer的工作是应用一些输入来更新状态。 reducer在执行操作后返回新状态。它适用于输入,可能会在不同的输入上返回不同的状态,因此它是一个函数。

如果使用第二种方法,则生成固定的state值,这对某些用例可能有效。但一般来说,你想要使用一个函数。

© www.soinside.com 2019 - 2024. All rights reserved.