javascript - 如何管理redux状态对象?

标签 javascript react-native redux react-redux state

这是响应数据。使用按增量和减量时,我需要存储每个项目的数量。

{name: "McChicken", type: "Non-Veg", price: 275, tax: 10}
{name: "Pizza", type: "Non-Veg", price: 275, tax: 10}
{name: "Burger", type: "Non-Veg", price: 275, tax: 10}

Redux 状态:在基于对象的存储中保存状态

因此很容易根据 key 进行更新。

import * as types from '../actions/types';

var _ = require('lodash');

const INITIAL_STATE = {
  data: {},
  loading: false,
  error: '',
  cartData: {},
}; 

export default (state=INITIAL_STATE, action) => {
  switch (action.type) {

    case types.MENULIST_REQUEST_START:
        return { ...state, loading:true, error: '' };

    case types.MENULIST_SUCCESS:
      const newItems = _.mapKeys(array, 'name')
        return { ...state, data: newItems , loading:false, error: 'Success' };

    case types.UPDATE_ITEM: 
       return { ...state, [cartData.name]: action.payload  }

    case types.DELETE_ITEM:
      return _.omit(state, [cartData.name]: action.payload)

    case types.MENULIST_FAILED:
        return { ...state, data: {}, loading:false, error: 'Request failed' };

    default:
        return state;
  }
}

当我调用更新和删除项目操作时出现错误。

Error: cartData is not defined

如果响应更新,我如何更新数量并管理状态?

最佳答案

你需要改变

{ ...state, cartData.name: action.payload  }

es6 计算属性键

{ ...state, [cartData.name]: action.payload  }

Computed property keys

关于javascript - 如何管理redux状态对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47152583/

相关文章:

reactjs - 如何使用 react redux 发出 post 请求?

javascript - React Native 点燃错误 : uncaught at root at takeLatest at saga

javascript - 我的日期选择器始终在当月打开

javascript - HighChart 中 y 轴的起始值

javascript - Prop 从父级传递给子级并将这些 Prop 设置为状态不会立即起作用

javascript - Opera 蜻蜓脚本调试器的烦恼

javascript - React-native:未定义不是一个对象

reactjs - 为 slider 指定值

react-native - 使用官方 fbsdk 响应 native Facebook 登录

javascript - Redux 状态改变后怎么办?