sourcecode

Redux 저장소에 올바른 환원기가 없습니다.

codebag 2023. 2. 11. 09:16
반응형

Redux 저장소에 올바른 환원기가 없습니다.

이 에러에 관한 정보를 찾을 수 없었습니다.

"스토어에는 유효한 리덕터가 없습니다.combineReducers에 전달된 인수가 reducers 값이 되는 개체인지 확인하십시오."

마이 리듀서

export default function FriendListReducer(state = {friends : []}, action) {
  switch (action.type) {
    case 'ADD_FRIEND':
      return [
        { friends : action.payload.friend }, ...state.friends
      ]     
    default:
      return state;
  }
  return state;
}

결합기

import { combineReducers } from 'redux';
import { FriendListReducer } from './FriendListReducer';

const rootReducer = combineReducers({
  friends: FriendListReducer
});
export default rootReducer;

내 스토어 구성

import { applyMiddleware, createStore } from 'redux';
import thunkMiddleware from 'redux-thunk';
import createLogger from 'redux-logger';
import rootReducer from '../reducers/reducers';

export default function configureStore(initialState = { friends: [] }) {
  const logger = createLogger({
    collapsed: true,
    predicate: () =>
    process.env.NODE_ENV === `development`, // eslint-disable-line no-unused-vars
  });

  const middleware = applyMiddleware(thunkMiddleware, logger);

  const store = middleware(createStore)(rootReducer, initialState);

  if (module.hot) {
    // Enable Webpack hot module replacement for reducers
    module.hot.accept('../reducers/reducers', () => {
      const nextRootReducer = require('../reducers/reducers').default;
      store.replaceReducer(nextRootReducer);
    });
  }

  return store;
}

당신의.import문장이 올바르지 않습니다.다음 중 하나를 사용합니다.import { Foo } from 'bar'와 함께export Foo또는 를 사용합니다.import Foo from 'bar'를 사용하여 내보내는 경우export default Foo.

즉, 다음 중 하나를 변경합니다.export default function FriendListReducer로.export function FriendListReducer또는 import 스테이트먼트를 변경합니다.import { FriendListReducer }로.import FriendListReducer.

개체가 비어 있는 경우.

 export  default  combineReducers({

 })

이 에러는 표시됩니다.

../computers/computers? 이상한 이름이네요.

어쨌든../reducers/reducers는 reducers를 반환하지 않는 것 같습니다.reducers가 디렉토리인 경우 index.js를 내부에 삽입하고 각 reducer를 Import하여 루트 reducer를 만듭니다.

import FriendListReducer from "./FriendListReducer"

const rootReducer = combineReducers({
   friendList : FriendListReducer
})

export default rootReducer

중요!! 당신은 국가를 갖게 될 것이다.자신의 주(州)에 friend list.

도움이 되었으면 좋겠다

store.displaces를 설정합니다.

거짓의

  • ".charactersSlice.js"에서 {charactersSlice} Import;

진실의 {}을(를)

  • ".charactersSlice.js"에서 charactersSlice를 Import한다.

최상위 리덕터 함수가 어레이를 기본값으로 사용하고 있는 것 같습니다.Redx는 상태 맨 위가 어레이가 아닌 오브젝트일 것으로 예상하고 있습니다.어레이를 그 오브젝트의 특정 키에 배치해 보겠습니다.{ friendList : [] }.

상술한 방법으로

import { FriendListReducer } from './FriendListReducer';

const rootReducer = combineReducers({
  friends: FriendListReducer
});
export default rootReducer;

대신import { FriendListReducer } from './FriendListReducer';

그냥 말하다import FriendListReducer from './FriendListReducer';

부터FriendListReducer와 함께 내보냈습니다.export default FriendListReducer가 아니라export const FriendListReducer

Please check your combine reducer file It's empty......

you have forgot bind reducer here

import {combineReducers, createStore} from 'redux'
import listDataReducer from '../reducers/ListDataReducer'

const rootReducer = combineReducers({
    listDataReducer,         //  Please add your reducer here
});

export default rootReducer;

나도 그 문제에 직면했다.내가 한 일은 다음과 같습니다.

combineReducers(productReducer, cartReducer)

나는 했다:

combineReducers({ productReducer, cartReducer })

그리고 그것은 성공하였다.스토어에 유효한 오브젝트가 필요합니다.

언급URL : https://stackoverflow.com/questions/36407937/redux-store-does-not-have-a-valid-reducer

반응형