Skip to content
This repository was archived by the owner on Oct 26, 2018. It is now read-only.

Conversation

stepankuzmin
Copy link
Contributor

This works for me with custom reducer:

import { UPDATE_LOCATION } from 'redux-simple-router'

const initialState = new Immutable.Map({
  location: undefined
})

export default function routeReducer(state = initialState, { type, payload: location }) {
  if (type !== UPDATE_LOCATION) {
    return state
  }

  return state.merge({ location })
}

and this selectLocationState

  const selectLocationState = function (state) {
    const location = state.get('routing').get('location')
    return location ? location.toJS() : location
  }

@timdorr
Copy link
Member

timdorr commented Jan 20, 2016

This is really less about supporting Immutable explicitly, and more about being less prescriptive about the return shape of our selectRouterState/selectLocationState. That seems like a positive API change to me.

@timdorr
Copy link
Member

timdorr commented Jan 20, 2016

I'm going to leave this open until we want to do a release, since it affects the docs on master. I don't want to confuse people using the published version when the behavior differs from the docs.

In the meantime, you should be able to do this with your selectRouterState:

const selectLocationState = function (state) {
  const location = state.get('routing').get('location')
  return { location: location ? location.toJS() : location }
}

@stepankuzmin
Copy link
Contributor Author

Yep, thanks for reply @timdorr! I've also updated README.md in this PR to track changes

timdorr added a commit that referenced this pull request Jan 24, 2016
Support ImmutableJS: use getLocationState instead of getRouterState as mentioned in #140
@timdorr timdorr merged commit 0574e4d into reactjs:master Jan 24, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants