ร้านค้าไม่มีตัวลดที่ถูกต้อง ตรวจสอบให้แน่ใจว่าอาร์กิวเมนต์ที่ส่งผ่านไปยัง CombineReducers เป็นอ็อบเจ็กต์ที่มีค่าเป็นตัวลด

นี่คือตัวลดของฉันที่ใช้งานได้ดี:

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

ฉันต้องการให้ระบบของฉันเป็นแบบโมดูลาร์ ดังนั้นฉันจึงลองเปลี่ยนเป็น:

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

ฉันได้รับข้อผิดพลาดนี้ในเบราว์เซอร์:

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

นี่คือรหัสไฟล์ทั้งหมด:

    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;

บริษัท แบรนด์ ล็อกอิน ฯลฯ... จะถูกส่งออกฟังก์ชัน...


person Paz Lazar    schedule 05.05.2016    source แหล่งที่มา


คำตอบ (1)


ตามที่กล่าวไว้ในข้อความแสดงข้อผิดพลาด คุณควรส่งผ่านไปยังวัตถุ combineReducers ที่มีค่า ตัวลด คุณผ่านวัตถุที่มีค่าเป็น วัตถุ ({companies: companies,brands: brands, ...})

combineReducers ส่งคืนตัวลดเพื่อให้คุณสามารถทำ:

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