Redux store не создает - PullRequest
       7

Redux store не создает

0 голосов
/ 30 октября 2019

src / components / redurs / index.js

import {combineReducers} from 'redux';

const tasksReducer =(state=[] , action)=>{
    switch(action.type){
        case 'ADD_TASK':
            state=state.concat(action.payload);
            break;
        case 'DELETE_TASK':
            state=state.slice();
            state.splice(action.payload,1);
            break;
    }
    return state;
},
reducers=combineReducers({
    tasks:tasksReducer
});

export default reducers;

(mapStateToProps () в Connect (панель задач) должен возвращать простой объект. Вместо этого получено неопределенное.)

Ответы [ 3 ]

0 голосов
/ 30 октября 2019

src / index.js

вот как я его импортировал ..

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
//import * as serviceWorker from './serviceWorker';
import {Provider} from 'react-redux';
import {createStore} from 'redux';
import reducers from "./reducers/index";

let store=createStore(reducers);



ReactDOM.render(
    <Provider store={store}>
        <App />
    </Provider>    
    ,
    document.getElementById('root'));
0 голосов
/ 30 октября 2019

Когда вы используете функцииlateReducers () в mapStateToProps, вы должны указать имя редуктора, из которого вы хотите получить данные. Итак, ваша функция mapStateToProps должна выглядеть так:

const mapStateToProps = state =>{
  return {
    PIECE_OF_STATE: state.tasks.PIECE_OF_STATE
  }
}

Где tasks - это имя вашего редуктора, которое вы объявили в своей функции combReducer ()

0 голосов
/ 30 октября 2019

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

import {combineReducers} from 'redux';

const tasksReducer =(state=[] , action)=>{
    switch(action.type){
        case 'ADD_TASK':
       let tempArr = [...state];
       let arr = tempArr.concat(action.payload); //action.payload is an array
           return [...arr];
            break;
        case 'DELETE_TASK':
            let tempArr= [...state];
            tempArr.splice(action.payload,1);//action.payload is index
            return [...tempArr];
            break;
        default: 
            return state;
    }
};
export default combineReducers({
    tasks:tasksReducer
});

, вот быстрая демонстрация , демонстрирующая массив concat и сращивание

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