Итак, у меня проблема с REACT / REDUX, мой массив объектов возвращает правильное значение, но также возвращает неопределенное значение, и я не знаю почему.В инструментах redux dev он показывает ноль вместо undefined, также у меня есть эта ошибка в консоли: Предупреждение: сбойный тип проп: пропел task
помечен как обязательный в NewToDo
, но его значение равно undefined
.
Файл действий
import {ADD_TODO} from "./types";
import {GET_TODO} from "./types";
export const addTodo = (todo) => dispatch => {
dispatch({
type: ADD_TODO,
payload: todo,
})
}
export const getTodo = () => dispatch => {
dispatch({
type: GET_TODO,
})
}
Редуктор
import {ADD_TODO} from "../actions/types";
import {GET_TODO} from "../actions/types";
const initialState = {
toDos: [
{task: 'Make a dinner', priority: '4'}
],
};
export default function(state=initialState, action){
switch(action.type){
case ADD_TODO:
return{
...state,
toDos: [action.payload, ...state.toDos]
}
case GET_TODO:
return {
...state,
}
default:
return state;
}
}
Компонент, который отображает задачи
import React, {Component} from 'react';
import PropTypes from 'prop-types';
import {connect} from 'react-redux'
class NewToDo extends Component {
render() {
console.log(this.props.task)
return (
<div>
</div>
);
}
}
NewToDo.propTypes = {
task: PropTypes.object.isRequired,
};
export default NewToDo;
Компонент со всемиtoDos
import React, {Component} from 'react';
import PropTypes from 'prop-types';
import NewToDo from './newToDo'
import {getTodo} from "../../actions/toDoActions";
import {connect} from 'react-redux'
class ToDos extends Component {
componentDidMount(){
this.props.getTodo();
}
render() {
const {toDos} = this.props;
console.log(toDos)
return (
<div>
{toDos.map( todo => (
<NewToDo task={todo}/>
))}
</div>
);
}
}
ToDos.propTypes = {
toDos: PropTypes.array.isRequired,
getTodo: PropTypes.func.isRequired,
}
const mapStateToProps = (state) => ({
toDos: state.toDo.toDos
})
export default connect(mapStateToProps, {getTodo})(ToDos);