Как перебрать объект с компонентом в Redux - PullRequest
0 голосов
/ 12 апреля 2019

Я хочу нанести на карту объект и передать значения как реквизиты.

Я работаю над проектом с избыточностью, у меня изначально был массив объектов, так что их было проще перебрать, но меня попросилипреобразовать мое начальное состояние в объект js, но мне трудно его реорганизовать

// Original State
lists = [
  {
    id: 0,
    title: "List1",
    cards: [
      {
        id: 0,
        title: "card1",
        user: "ali"
      }
    ]
  },
  {
    id: 1,
    title: "List2",
    cards: [
      {
        id: 1,
        title: "card1",
        user: "ahmed"
      },
      {
        id: 2,
        title: "card2",
        user: "khalid"
      }
    ]
  }
];

// This is where I map over the card and send the values as props
cards.map(card => (
  <TodoCard
    key={card.id}
    title={card.title}
    listId={listId}
    cardId={card.id}
    user={card.user}
  />
));

Код работает нормально, но как мне выполнить итерацию, если массив преобразован в объект js, указанный ниже

lists = [
  {
    id: 0,
    title: "List1",
    cards: {
      cardDetail: {
        id: 0,
        title: "card1",
        user: "ali"
      }
    }
  },
  {
    id: 1,
    title: "List2",
    cards: {
      cardDetail: [
        {
          id: 1,
          title: "card1",
          user: "ahmed"
        },
        {
          id: 2,
          title: "card2",
          user: "khalid"
        }
      ]
    }
  }
];

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019
  cards:{ 
          cardDetail:
         {
          id:1,
          title:"card1",
          user:"ahmed"
         },
         {
          id:2,
          title:"card2",
          user:"khalid"
         }
        }
  }

Вы можете выполнить итерацию, используя Object.keys(), которая выдаст весь ключ, а затем выполните forEach.

Object.keys(cards).forEach((key,index) => {
    // key: the name of the object key....    cardDetail here
    // index: the ordinal position of the key within the object 
// value : cards[key]... value of the object.


});

Вам также нужно будет выполнить цикл на value : cards[key], поскольку в нем есть несколько объектов, которые кажутся неэффективными, поэтому лучше по возможности проектировать объект данных

0 голосов
/ 12 апреля 2019

Вы просто не можете так делать. Вам либо нужно использовать

list = [{object}, {object}];
//or
list = {myList: [{object}, {object}]}

Вы не можете просто написать

list = {{object}, {object}}

с недопустимым синтаксисом.

Посмотрите, что и как вы можете использовать объекты и массивы

https://www.w3schools.com/js/js_objects.asp

https://www.w3schools.com/js/js_arrays.asp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...