It's not the cookies!! \o/
TL;DR: The flux stores are not being initialised on every request.
First request to the server:
request cookies: {}
params: {}
toggles: {}
const mapStateToProps = (state) => ({ | |
viewModel: getViewModel(state) | |
}); |
const mapStateToProps = ({ filters }) => ({ | |
viewModel: new ViewModel(filters.channel, filters.filters, filters.sortType) | |
}); |
const { createSelector } = require('reselect'); | |
export const getViewModel = createSelector( | |
[ | |
getFiltersChannel, | |
getFilters, | |
getFiltersSort | |
], | |
(channel, filters, sortType) => new ViewModel(channel, filters, sortType) | |
); |
const WhyYouUpdate = Component => { | |
class WhyYouUpdate extends React.Component { | |
componentDidUpdate(prevProps, prevState) { | |
deepDiff( | |
{ props: prevProps, state: prevState }, | |
{ props: this.props, state: this.state }, | |
Component.displayName | |
); | |
} |
const SearchBarContainer = ({ viewModel }) => ( ... ); | |
const mapStateToProps = ({ filters }) => ({ | |
viewModel: new ViewModel(filters.channel, filters.filters, filters.sortType) | |
}); | |
export default connect(mapStateToProps)(SearchBarContainer); |
const Component = ({ shouldRenderFeature }) => ( ... ); | |
const mapStateToProps = (state) => ({ | |
shouldRenderFeature: state.toggles.featureA | |
}); | |
export default connect(mapStateToProps)(Component); |
export default function featureToggles(state={}, action) { | |
switch (action.type) { | |
case Actions.FEATURE_TOGGLES_UPDATED: | |
return { ...state, ...action.data }; | |
default: | |
return state; | |
} | |
} |
It's not the cookies!! \o/
TL;DR: The flux stores are not being initialised on every request.
First request to the server:
request cookies: {}
params: {}
toggles: {}
class FeatureToggleStore extends MapStore { | |
getInitialState() { | |
return { featureToggles: {} }; | |
} | |
reduce(state, payload) { | |
const { action } = payload; | |
switch (action.type) { | |
case Actions.FEATURE_TOGGLES_UPDATED: | |
const featureToggles = { |