gpt4 book ai didi

javascript - 将对象推送到对象数组上会返回数组大小

转载 作者:行者123 更新时间:2023-11-28 04:04:02 25 4
gpt4 key购买 nike

我正在使用react-boilerplate构建一个应用程序,人们可以在其中创建和编辑事件。这个样板使用 immutable.js 所以我想学习它。

当我将事件保存到数据库时,数据库将事件作为对象返回。

console.log(action.payload.event) 

会打印

{
color:"#000000",
name:"my Event",
_id:"59ea882a58a83d20d400cd21",
}

然后我想将该对象推送到其他事件的数组中。当用户登录时,事件将被填充。

我的 reducer 看起来像这样

import { fromJS } from 'immutable';
import { ADD_EVENT_REQUEST_SUCCESS } from './constants';

const initialState = fromJS({
events: null
});

function eventsOverviewReducer(state = initialState, action) {
switch (action.type) {

case ADD_EVENT_REQUEST_SUCCESS:
return state
.update('events', list => list.push( action.payload.event ));

case LOGIN_SUCCESS:
const user = action.payload.user;
return state
.set('events', user.events)

default:
return state;
}
}

但是,此更新语句现在将存储中的事件设置为数组的大小。如何将我的对象推送到状态?

最佳答案

听起来您的事件不是 Immutable.List 。当您设置事件时,您应该将其创建为列表而不是常规数组:

case LOGIN_SUCCESS:
return state
.set('events', List(user.events))

然后events.push将正确返回新列表。

关于javascript - 将对象推送到对象数组上会返回数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46858991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com