Я пытался разобраться в этой проблеме, но не могу обойти ее.
Выборка работает нормально, но я получаю сообщение об ошибке при отображении задач из реквизита.
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: {}
}
}