Магазин Redux не обновляется - PullRequest
0 голосов
/ 24 июня 2019

Пытаюсь обновить магазин приставок списком groupsNames.Вызов axios внутри действия работает, и есть ответ.Когда я отправляю полезную нагрузку, в хранилище избыточных данных не обновляются данные ответов.

FileName: actions / index.js

CODE:

export const getGroups = () => async dispatch => {
  axios.get(url + "groups")
   .then(response => {
     console.log(response.data);
    dispatch({
     type: GET_GROUPS,
      payload: response.data
   })
  },
  function(error) {
    console.log(error)
          }
      );

 };

Имя файла:redurs / groupsReducer.js

CODE:

import _ from 'lodash';
import {
GET_GROUPS,
} from '../actions/types';


export default (state = {}, action) => {
console.log(action.payload);
console.log("inside groupsREducer");
switch (action.payload) {
case GET_GROUPS:
   console.log(action.payload);
   return {...state, ..._.mapKeys(action.payload, 'id')};

default:
  return state;
 }
 }

// mapKeys - это функция из lowdadsh, которая принимает массив и возвращает объект.


FileName:redurs / index.js

КОД:

import { combineReducers } from 'redux';
import authReducer from './authReducer';
import { reducer as formReducer } from 'redux-form';
import postsReducer from './postsReducer';
import groupsReducer from './groupsReducer';

export default combineReducers ({
 auth: authReducer,
 form: formReducer,
 posts: postsReducer,
 groups: groupsReducer,
 });

Имя файла: GroupList.js

КОД:

  import React from "react";     
  import { connect } from "react-redux";
  import { getGroups } from '../../actions';

  class GroupList extends React.Component {

   componentDidMount() {
     this.props.getGroups();
    }

    render() {
     return <div>
       <h1>GroupList</h1>
       </div>;
     }
    }


   export default connect(null, { getGroups })(GroupList);

Имя файла: App.js

КОД:

import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import { createStore, applyMiddleware, compose} from 'redux';
import reduxThunk from 'redux-thunk';
import reducers from './reducers';
import Landing  from './components/Landing';


const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(
  reducers,
  composeEnhancers(applyMiddleware(reduxThunk))
);

ReactDOM.render(
  <Provider store={store}>
    <Landing />
  </Provider>,
 document.querySelector('#root')
);```






Ive connected to ReduxDevToolsExtension in chrome and when i check the state in there, it shows empty.

1 Ответ

0 голосов
/ 24 июня 2019

Вы используете неверный аргумент для своего регистра.

Заменить switch (action.payload) на switch (action.type)

...