Как установить состояние в методе жизненного цикла React recompose?
Я использую recompose в моем проекте React https://github.com/acdlite/recompose/
это отличная библиотека. Я использую compose
утилита как компонент контейнера, который передает состояние вниз как реквизит презентационному компоненту, например:
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: () => {
...
Примечание setIsReady(true)
звонок в пределах componentDidMount
. Это то, что я хочу сделать, однако lifecycle/componentDidMount не имеет доступа к setIsReady
. Как я могу выполнить предполагаемый результат обновления состояния от componentDidMount
С recompose?
1 ответов
Ну я узнал, если вы перемещаете lifecycle
способ после withState
методы, у вас есть доступ к сеттеров по ссылке this.props.setterFunction
. В моем случае вот решение, которое я искал:
const enhance = compose(
withState('isAvailable', 'setIsAvailable', false),
withState('isReady', 'setIsReady', false),
lifecycle({
componentDidMount() {
myCall
.getResponse([productId])
.then(products => {
this.props.setIsReady(true);
});
},
}),
mapProps(({
setIsAvailable,
setIsReady,
...state,
}) => ({
onLogoutTouchTap: () => {
...