代码之家  ›  专栏  ›  技术社区  ›  CraZyDroiD

更新数组中的对象-reactjs

  •  0
  • CraZyDroiD  · 技术社区  · 5 年前

    我正在调用一个api请求来更新(编辑)我的对象数组中的值。但问题是我只能在页面刷新后看到更新的值。要立即查看更新(编辑)的值,我正在尝试将更新的值插入本地对象(仅当请求成功执行时)。我的方法如下

    行动

                .then(res => {
                    if (res.data.success === true) {
                        const updatedBillingPlan = {
                            "billingId":data.billingId,
                            "name": data.name,
                            "rateKWh": data.rateKWh,
                            "rateMin": data.rateMin,
                            "rateTransaction": data.rateTransaction
                        }
                        dispatch(updateBillingPlansSuccess(updatedBillingPlan));
                    } else {
                        alert("error");
                    }
                })
    

    减速器

                case UPDATE_BILLING_PLANS_SUCCESS:
    
                let updatedBillingArray = (Here i need to include action.data to billingData )
    
                return update(state, {
                    billingData: updatedBillingArray,
                })
    

    我想用 immutability-helper 图书馆。

    我该怎么办?

    例如,当我删除一条记录时,为了显示包含已删除记录的最新数组,我正在执行这样的操作。

               case DELETE_MODAL_SUCCESS:
                let updatedBillingArray = state.billingData.filter(property => property.billingId !== action.data);
                return {
                    ...state,
                    billingData: updatedBillingArray,
                    billingDeleteToast: true
                }
    

    我也想做同样的更新。

    0 回复  |  直到 5 年前
        1
  •  1
  •   Tudor Constantin    5 年前

    假设 billingID 在计费计划中是唯一的,可以使用它更新数组中的适当元素:

            case UPDATE_BILLING_PLANS_SUCCESS:
    
            let updatedBillingArray = state.billingData.map(bp => if (bp.billingId === action.data.billingId) return action.data else return bp);
    
            return update(state, {
                ...state,
                billingData: updatedBillingArray,
            })
    
        2
  •  0
  •   keikai    5 年前

    我正在调用一个api请求来更新(编辑)我的对象数组中的值。但问题是我只能在页面刷新后看到更新的值。

    也许这是个开始使用的好机会 redux-devtools-extension

    每一步你都会在你的redux商店找到更新的内容。