Redux для выбора объекта имеет строку в качестве ключа - PullRequest
0 голосов
/ 11 октября 2019

У меня проблемы с получением доступа к объекту, как показано ниже при повторном выборе, надеюсь, у кого-то была идея, которая может мне помочь.

const data = state => fruit.selectors.data(state);

This will return an object like this:

{
  "10.Kroger": {
    "fruit": "Banana",
    "price": "10",
    "store": "Kroger",
  },
   "5.Heb": {
    "fruit": "Apple",
    "price": "5",
    "store": "Heb",
  },
   "12.Wallmart": {
    "fruit": "Pineapple",
    "price": "12",
    "store": "wallmart",
  },
}

А вот мой createSelector

export const getFruitData = createSelector(
  data,
  (state, price, store) => price,
  (state, price, store) => store,
  (data, price, store) => data[`${price}.${store}`]
);

Я пытался получить динамический результат путем передачи значения в:

data["10.Kroger"] должен вернуть этот объект какрезультат:

 {
    "fruit": "Banana",
    "price": "10",
    "store": "Kroger",
 },

Можно ли сделать эту работу в повторном выборе? Спасибо за помощь!

1 Ответ

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

Ваш пример, кажется, не извлекает выгоду из какого-либо слоя памятки. Вы можете оставить reselect и написать простую селекторную функцию, примерно так:

const data = state => fruit.selectors.data(state);

export function getFruitData(state, price, store) {
  const itemData = data(state);
  return itemData[`${price}.${store}`]
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...