2016-04-30 8 views
1

Momentan funktioniert mein Redux-Setup (das Immutable.js für seinen Zustand verwendet) vollständig wie gewünscht. Allerdings gibt die redux Entwickler-Tools Erweiterung den folgenden Fehler, wenn die geöffnet wird:Redux Dev Tools Chrome Erweiterung Immutable.js Ursachen Fehler

An error occurred in the reducer TypeError: n.withMutations is not a function

Für Kontext, ich bin redux-immutable für seine kombinieren Minderer mit der Funktion zu, na ja, meinen reagieren-Router-redux Minderer kombinieren:

import { fromJS } from 'immutable'; 
import { LOCATION_CHANGE } from 'react-router-redux'; 

const initialState = fromJS({ 
    locationBeforeTransitions: null, 
}); 

export default (state = initialState, action) => { 
    if (action.type === LOCATION_CHANGE) { 
    return state.merge({ 
     locationBeforeTransitions: action.payload, 
    }); 
    } 
    return state; 
}; 

und meine Business-Logik Reducer.

UPDATE: Erstellen des Produktionspakets mit Webpack, Testen der App im Produktionsmodus (in einem Andockcontainer) und erneutes Testen der App im Entwicklungsmodus (auf dem lokalen Computer ohne Andockfenster) scheint das Problem gelöst zu haben Problem? Odd ...

+1

Wird dieses Problem durch die folgende Antwort gelöst? Könnten Sie den Status aktualisieren oder die Antwort akzeptieren, wenn dies ausreichend war? – anoop

Antwort

1

Wenn Sie react-router-redux verwenden möchten, keine Notwendigkeit, die Reduzierung Ihrer eigenen, nur zu implementieren, um die routerReducer als Schlüssel Routing (wichtig) importieren aus react-router-redux wie unten und verbinden sich mit anderen Reduzierungen,

import { syncHistoryWithStore, routerReducer } from 'react-router-redux' 
// Add the reducer to your store on the `routing` key 
const store = createStore(
    combineReducers({ 
    ...reducers, 
    routing: routerReducer 
    }) 
) 

//To Sync navigation events with the store 
const history = syncHistoryWithStore(browserHistory, store) 

ReactDOM.render(
    <Provider store={store}> 
    { /* Tell the Router to use our enhanced history */ } 
    <Router history={history}> 
     <Route path="/" component={App}> 
     <Route path="foo" component={Foo}/> 
     <Route path="bar" component={Bar}/> 
     </Route> 
    </Router> 
    </Provider>, 
    document.getElementById('mount') 
) 

Hoffe das ist, was Sie zu implementieren versuchen

Verwandte Themen