Toko tidak memiliki peredam yang valid. Pastikan argumen yang diteruskan ke mergeReducers adalah objek yang nilainya merupakan reduksi

ini peredam saya yang berfungsi dengan baik:

    const rootReducer   =   createStoreWithMiddleware(combineReducers({
        companies: companies,
        brands: brands,
        login: login,
        chat: chat,
        banners: banners,
        sessions: sessions,
        settings: settings,
        statistics: statistics
}));

saya ingin sistem saya menjadi modular jadi saya mencoba mengubahnya menjadi:

    const rootReducer   =   createStoreWithMiddleware(combineReducers({
    chatModule: {
        companies: companies,
        brands: brands,
        login: login,
        chat: chat,
        banners: banners,
        sessions: sessions,
        settings: settings,
        statistics: statistics
    }
}));

lalu saya mendapatkan kesalahan ini di browser:

Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.

ini keseluruhan kode filenya:

    import {combineReducers, createStore, applyMiddleware} from 'redux';
import ReduxPromise from 'redux-promise';
import {login, chat, chatClick, banners, sessions, companies, settings, statistics, brands} from '../actions/actions'

const createStoreWithMiddleware =   applyMiddleware(ReduxPromise)(createStore);

const rootReducer   =   createStoreWithMiddleware(combineReducers({
    chatModule: {
        companies: companies,
        brands: brands,
        login: login,
        chat: chat,
        banners: banners,
        sessions: sessions,
        settings: settings,
        statistics: statistics
    }
}));

export default rootReducer;

perusahaan, merek, login, dll... fungsi yang diekspor...


person Paz Lazar    schedule 05.05.2016    source sumber


Jawaban (1)


Seperti yang dikatakan dalam pesan kesalahan, Anda harus meneruskan ke objek combineReducers yang nilainya pengurang. Anda meneruskan objek yang nilainya adalah objek ({companies: companies,brands: brands, ...})

combineReducers mengembalikan peredam itu sendiri sehingga Anda dapat melakukan:

const rootReducer = createStoreWithMiddleware(combineReducers({
  chatModule: combineReducers({
    companies: companies,
    brands: brands,
    login: login,
    chat: chat,
    banners: banners,
    sessions: sessions,
    settings: settings,
    statistics: statistics
  })
})
person trashgenerator    schedule 05.05.2016