Estoy usando recomponer en mi proyecto React https://github.com/acdlite/recompose/
Es una gran biblioteca. Estoy usando la utilidad de redacción como un compose de contenedor que pasa el estado como accesorios al componente de presentación de la siguiente manera:
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: () => { ... Tenga en cuenta la setIsReady(true) dentro de componentDidMount . Esto es lo que quiero hacer, sin embargo, lifecycle/componentDidMount no tiene acceso a setIsReady . ¿Cómo puedo lograr el resultado previsto de actualizar el estado de componentDidMount con recompose?
Bueno, descubrí que si mueve el método del lifecycle de vida después de los métodos withState , tiene acceso a los setters accediendo a this.props.setterFunction . En mi caso, aquí está la solución que estaba buscando:
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: () => { ...