我如何在 React 的 recompose 生命周期方法中设置状态?

How do I setState within React's recompose's lifecycle method?

我在我的 React 项目中使用重构 https://github.com/acdlite/recompose/

这是一个很棒的图书馆。我使用 compose 实用程序作为容器组件,将状态作为 props 传递给展示组件,如下所示:

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: () => {
      ...

注意 componentDidMount 中的 setIsReady(true) 调用。这就是我想要做的,但是 lifecycle/componentDidMount 无法访问 setIsReady。我怎样才能通过重组实现从 componentDidMount 更新状态的预期结果?

好吧,我发现如果将 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: () => {
      ...