Получение ошибки, когда я пытаюсь перебрать файл immutable.js - PullRequest
0 голосов
/ 26 августа 2018

У меня есть следующий код:

reduce.js:

import { fromJS } from 'immutable';

const initialState = fromJS({
  "ff0bce4-ef2e-4eb6-b7b4-2f759d6ee0bb": {
    "id": "8ff0bce4-ef2e-4eb6-b7b4-2f759d6ee0bb",
    "type": "course",
    "attributes": {
      "title": "Wordpress"
    },
    "links": {
      "self": "http://api.dev.course.com/api/v1/course/8ff0bce4-ef2e-4eb6-b7b4-2f759d6ee0bb"
    },
    "relationships": {
      "modules": {
        "links": {
          "self": "http://api.dev.course.com/api/v1/course/8ff0bce4-ef2e-4eb6-b7b4-2f759d6ee0bb/relationships/modules",
          "related": "http://api.dev.course.com/api/v1/course/8ff0bce4-ef2e-4eb6-b7b4-2f759d6ee0bb/modules"
        }
      }
    }
  },
  "cd65128e-c89e-4a1a-8022-148e6bc673d2": {
    "id": "cd65128e-c89e-4a1a-8022-148e6bc673d2",
    "type": "course",
    "attributes": {
      "title": "Symfony"
    },
    "links": {
      "self": "http://api.dev.course.com/api/v1/course/cd65128e-c89e-4a1a-8022-148e6bc673d2"
    },
    "relationships": {
      "modules": {
        "links": {
          "self": "http://api.dev.course.com/api/v1/course/cd65128e-c89e-4a1a-8022-148e6bc673d2/relationships/modules",
          "related": "http://api.dev.course.com/api/v1/course/cd65128e-c89e-4a1a-8022-148e6bc673d2/modules"
        }
      }
    }
  }
});

function list(state = initialState, action) {
  switch (action.type) {
    default:
      return state;
  }
};

export default list;

courseList.js

import React, { Component } from "react";
import { connect } from "react-redux";

class CourseListContainer extends Component {
  render() {
    return (
        <div>
          {
            this.props.courses.map((course, s) => {
              <div>test1</div>

            })
          }
        </div>
    )
  }
}

function mapStateToProps(state, props) {
  const common = state.get('common');

  return {
    courses: common.get('courseList'),
  }
}


export default connect(mapStateToProps)(CourseListContainer);

Когда я пытаюсь повторить курсы, я получаю это предупреждение: Предупреждение. Использование Карт в качестве дочерних элементов не поддерживается и, вероятно, приведет к неожиданным результатам. Преобразовать его в последовательность / повторяемую о ...

Итак, я пытался использовать разные способы итерации, такие как: valueSeq (), entrySeq ... но ни один из них не работает. Я не получил никакого предупреждения в этом случае, но я не видел «asdasdasd» дважды. В этом случае это похоже на курсы пустые, но не потому, что я проверяю консоль и вижу информацию.

1 Ответ

0 голосов
/ 26 августа 2018

Immutable.Map#map возвращает Immutable.Map, поэтому вы реагируете на карту детей. Вы должны быть в состоянии сделать:

courses.values ​​(). карта ()

Или

courses.valueSeq (). Карта ()

Или вы также можете использовать ключи:

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