【问题标题】:Delete items from state array - redux从状态数组中删除项目 - redux
【发布时间】:2017-12-27 00:57:58
【问题描述】:

我正在使用 redux 开发 react-native 应用程序。我无法从数组中删除特定项目。 state.tournaments 是数组,我要删除的项目必须包含我从操作发送到 redux 的 ID。

这是我的减速器:

import {
  TOURNAMENT_NAME_CHANGED,
  TOURNAMENT_CREATE,
  SAVE_TOURNAMENT,
  DELETE_TOURNAMENT
} from '../actions/types';

const INITIAL_STATE = {
  name: null,
  admin_token: null,
  tournaments: []
};

export default (state = INITIAL_STATE, action) => {
  switch (action.type) {
    case TOURNAMENT_NAME_CHANGED:
        return { ...state, name: action.payload };
    case TOURNAMENT_CREATE:
        return { ...state, admin_token: action.payload.data.admin_token };
    case SAVE_TOURNAMENT:
        return { ...state, tournaments: [...state.tournaments, action.payload] };
    case DELETE_TOURNAMENT:
        return { ...state, tournaments: state.tournaments.filter((name, id) => id !== action.payload.id) };
    default:
      return state;
  }
};

【问题讨论】:

  • 为了让这里的人能够帮助您,您应该为您的代码创建一个小提琴或现场演示,或者提供一些日志或其他额外信息。

标签: arrays react-native redux react-redux


【解决方案1】:

你没有正确使用过滤器,试试这个:

state.tournaments.filter(tournament => tournament.id !== action.payload.id)

【讨论】:

    猜你喜欢
    • 2016-10-13
    • 2019-02-15
    • 2020-12-15
    • 2016-07-19
    • 1970-01-01
    • 2019-02-15
    相关资源
    最近更新 更多