React / Redux: Тип пропущенного пропа - Неверный объект проп - PullRequest
0 голосов
/ 02 сентября 2018

Я пытался разобраться в этой проблеме, но не могу обойти ее.

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

JSON:

{
"tasks": [
    {
        "uuid": "d5704a95-a7f4-441f-a962-70f3962ec137",
        "title": "Finish presentation task",
        "is_completed": false,
        "created_at": "2018-09-02T14:02:04+00:00",
        "url": "http://****/todos/d5704a95-a7f4-441f-a962-70f3962ec137"
    }
]
}

Теперь после получения задачи отправляются:

export const fetchTasks = () => dispatch => {
fetch('****', {
    headers: {
        "Authorization" : `****`,
        'content-type': 'application/json'
    }
})
.then(res => res.json())
.then(tasks =>
    dispatch({
      type: FETCH_TASKS,
      payload: tasks
    })
  );
};

Далее:

Tasks.propTypes = {
    fetchTasks: PropTypes.func.isRequired,
    tasks: PropTypes.array.isRequired,
    newTask: PropTypes.object
}

Это возвращает мне ошибку: this.props.tasks.map не является функцией .

И при ближайшем рассмотрении: Неудачный тип пропеллера: Недопустимая опора tasks типа object, поставляемая в Tasks, ожидаемая array.

Попробовал следующие изменения:

tasks: PropTypes.array.isRequired
tasks: PropTypes.object.isRequired // array > object

Который все еще возвращает ту же ошибку.

Redux devtools показывает следующее в State:

{
    tasks: {
         items: {
            tasks: [
                     {
                        uuid: 'd5704a95-a7f4-441f-a962-70f3962ec137',
                        title: 'Finish presentation task',
                        is_completed: false,
                        created_at: '2018-09-02T14:02:04+00:00',
                        url: 'http://****/todos/d5704a95-a7f4-441f-a962-70f3962ec137'
                     }
                   ]
                },
       item: {}
    }
}

1 Ответ

0 голосов
/ 02 сентября 2018

Как заметил @Аруп Ракшит:

.then(tasks =>
    dispatch({
    type: FETCH_TASKS,
    payload: tasks.tasks
    })
);

Исправлена ​​проблема!

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