Как передать значения массива через свойства различных объектов массива - PullRequest
0 голосов
/ 11 октября 2019
  1. Элемент списка

У меня есть магазин с резервированием с такой структурой

const INITIAL_STATE = {
    currentData: [
        {
            title: 'Total Insurance Bought',
            img: 'insurance-bought.svg',
            bg: 'insurance-shield',
            data: '',
        },
        {
            title: 'Total Amount of Claims',
            img: 'amount of claims icon.svg',
            bg: 'amount-of-claims',
            data: '',
        }
    ]
} 

Это текущая структура моей функции редуктора

const summaryReducer = (state = INITIAL_STATE, action ) => {
    switch(action.type){
        case 'SET_SUMMARY_DATA':
            return {
                ...state,
                currentData: {
                    ...state.currentData,
                    data: action.payload
                }
            }
        default: 
            return state
    }
}

Я хотел бы распространить значения этого массива в action.payload, в каждое свойство данных начального состояния, возвращая все состояние.

[ 0 , 20000 ]

Я хочу, чтобы мой вывод был

const INITIAL_STATE = {
    currentData: [
        {
            title: 'Total Insurance Bought',
            img: 'insurance-bought.svg',
            bg: 'insurance-shield',
            data: '0',
        },
        {
            title: 'Total Amount of Claims',
            img: 'amount of claims icon.svg',
            bg: 'amount-of-claims',
            data: '20000',
        }
    ]
} 

1 Ответ

0 голосов
/ 11 октября 2019

Если ваши текущие данные всегда будут иметь два элемента массива и если ожидаемая полезная нагрузка будет иметь два элемента в ожидаемом порядке, вы можете сделать это следующим образом.

case 'SET_SUMMARY_DATA':
  return {
     ...state,
     currentData: currentData.map((currentItem, index) => {
       currentItem.data = action.payload[index];
       return currentItem;
     })
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...