I am using recompose in my React project https://github.com/acdlite/recompose/
It's a great library. I'm using the compose
utility as a container component that passes state down as props to the presentational component like so:
const enhance = compose(
lifecycle({
componentDidMount() {
myCall
.getResponse([productId])
.then(products => {
setIsReady(true);
});
},
}),
withState('isAvailable', 'setIsAvailable', false),
withState('isReady', 'setIsReady', false),
mapProps(({
setIsAvailable,
setIsReady,
...state,
}) => ({
onLogoutTouchTap: () => {
...
Note the setIsReady(true)
call within componentDidMount
. This is what I want to do, however lifecycle/componentDidMount doesn't have access to setIsReady
. How can I accomplish my intended result of updating state from componentDidMount
with recompose?
Well I found out if you move the
lifecycle
method after thewithState
methods, you have access to the setters by accessingthis.props.setterFunction
. In my case, here is the solution I was looking for: