如何在不改变状态的情况下附加数据

Meh*_*kri 2 reactjs redux

我正在创建一个分页系统。
减速器部分如下所示:

(state, payload)=> {
            if (state.venues === null) {
                    state.venues = [];
            }
            state.venues.push.apply(state.venues, payload.data)
            return {
                    ...state,
                    isRequesting: false,
                    hasVenues: true,
                    venues: state.venues,
                    hasMessage: false
            }
    },
Run Code Online (Sandbox Code Playgroud)

state.venues在组件中迭代。
问题是,对于第一个请求,它state.venues是空的,所以我应该将它转换为空数组以将有效负载附加到它。
但是通过这种方法,我想我改变了 redux 中不允许(推荐)的状态。
那么如何在没有状态突变的情况下实现这一目标呢?

Mar*_*ams 7

要创建新的场地数组,请使用传播运算符:

var newVenues = [
    ...state.venues,
  'Tokyo'
];
Run Code Online (Sandbox Code Playgroud)

您可以使用 Object.assign 来避免改变状态:

var newState = Object.assign({}, state, { venues: newVenues });
Run Code Online (Sandbox Code Playgroud)

(为清楚起见,我在您的示例中省略了该州的其他部分)。