Я пытаюсь перечислить связанные нереляционные задачи из сервиса, это мой код:
Модель сервиса:
const serviceSchema = new Schema({
name: String,
description: String,
pricePerHour: Number,
relatedTodos: [{
name: String,
description: String,
isDone: Boolean,
createdAt: Date,
updatedAt: Date
}],
createdAt: Date,
updatedAt: Date
});
Мой редуктор Сервис:
const INITIAL_STATE_SERVICE = {
listServices: [],
service: { listTodos:[]},
loading: false,
errors: {},
};
export default function(state = INITIAL_STATE_SERVICE, action) {
switch (action.type) {
case serviceTypes.SEARCHING_TODOS_BY_SERVICE:
return{
...state,
listTodos: [...state.service.listTodos,action.payload.data]
}
default:
return state;
}
}
Моя служба действий
export const searchingTodosByService = (id) => async dispatch => {
const res = await axios.get(`/api/services/bringTodos/${id}`);
dispatch({type: serviceTypes.SEARCHING_TODOS_BY_SERVICE, payload: res})
}
Службы листинга:
bringRegisters() {
return this.props.listServices.map(service => {
return (
<tr key={service._id}>
<td>
<Link to={`/services/bringTodos/${service._id}`}>Todos</Link>
</td>
</tr>
);
});
}
render() {
return (
<div className='table-responsive'>
<table className='table table-striped table-sm'>
<thead>
<tr>
<th>Todos</th>
</tr>
</thead>
<tbody>{
this.bringRegisters()
}
</tbody>
</table>
</div>
);
}
}
И, наконец, мой класс связанных списков Todos:
componentDidMount() {
const { id } = this.props.match.params;
this.id = id;
if (id) {
this.props.searchingTodosByService(id);
}
}
bringRegisters() {
return this.props.listTodos.map(todo => {
return (
<tr key={todo._id}>
<td>{todo.name}</td>
<td>{todo.description}</td>
<td>{todo.isDone}</td>
<td>{todo.createdAt}</td>
<td>{todo.updatedAt}</td>
</tr>
);
});
}
function mapState(state) {
return {
listTodos: state.servicesDs.service.listTodos
};
}
Ожидаемый результат - компонентотображение связанных задач по идентификатору службы, но реальный вывод - ошибка: запрос не выполнен с кодом состояния 500.
Что не так?