2016-07-30 22 views
1

Ich versuche, Anfangszustand in createStore zu übergeben, aber es zeigt mir Fehler/Warnung in der Konsole.Kann Anfangszustand durch createStore in Redux nicht übergeben

Unexpected key "blogList" found in initialState argument passed to createStore. Expected to find one of the known reducer keys instead: "routing". Unexpected keys will be ignored.

Zusammen mit diesem Fehler, den ich immer bin nicht Anfangsdaten im Speicher Zustand. Aus der Dokumentation:

[initialState] (any): Der Ausgangszustand. Sie können es optional angeben, um den Status in universellen Apps vom Server zu hydratisieren oder um eine zuvor serialisierte Benutzersitzung wiederherzustellen. Wenn Sie Reduzierer mit combineReducers erstellt haben, muss es sich um ein einfaches Objekt mit der gleichen Form wie die übermittelten Schlüssel handeln. Andernfalls können Sie alles weitergeben, was Ihr Reducer verstehen kann.

Gibt es etwas, das ich vermisse? Ich protokolliere gerade den Zustand. und es passiert nicht gerade jetzt. Ich habe diese Videos bezeichnet redux here.

Hier Code meinem Speicher lernen:

var Redux = require('redux'); 
var syncHistoryWithStore = require('react-router-redux').syncHistoryWithStore; 
var browserHistory = require('react-router').browserHistory; 
var rootReducer = require('../reducers/index'); 
//var BlogActions = require('./actions/actions.js'); 
var blogList = { 
    "id":1, 
    "heading": "Heading of blogpost : No topic suggested", 
    "cardText": "Content of this blogpost is temporary and will be gathered from Server later. Also Reflux is yet to be implemented", 
    "date": "16 July, 2016", 
    "tags": ["general","react","firstpost"], 
    "content": "sample text" 
}; 

var defaultState = { 
    blogList: blogList 
}; 

var BlogStore = Redux.createStore(rootReducer, defaultState); 
var history = syncHistoryWithStore(browserHistory, BlogStore); 

module.exports = { "store" : BlogStore, "history" : history }; 

Wurzelminderer:

var combineReducers = require('redux').combineReducers; 
var routerReducer = require('react-router-redux').routerReducer; 
var blogList = require('./blogList'); 
var rootReducer = combineReducers({blogList:blogList,routing:routerReducer}); 
module.exports = rootReducer; 

Bloglist Reducer:

function blogList (state, action) { 
console.log(action,state); 
return state; 
} 

module.export = blogList; 

P. S. : Ich benutze React Router zusammen mit Redux. und ich kann routing in store.getState von react dev tools sehen.

+1

Wenn Sie var blogList debuggen in Ihrer rootReducer-Datei ist es definiert? –

+0

@Der Broßorsor, Danke für den Tipp. blogList ist in rootReducer definiert, aber es ist ein leeres Objekt (typeof blogList === Objekt). Für rootReducer ist es jedoch Funktion. Exportiere ich es falsch? –

+0

@Der Brofessor, ich habe die Funktion direkt mit Root Reducer verschoben und es hat funktioniert. Ich glaube, Fehler sollte aufgrund des Exports sein. –

Antwort

1

Ich glaube, es ist ein Tippfehler und die letzte Zeile der blogList-Datei sollte module.exports anstatt module.export sein.