Вече е добре установен модел да се използва декоратор с реакция за създаване на компонент от по-висок ред, напр. реагират-redux @connect. Тъй като декораторите не са изобретение на React или Redux, можете да ги използвате не само за създаване на HOC, но, например, за заместване на метода за рендиране. Може да се използва, когато не искате да задействате повторно componentDidMount (ако имате някакво API извикване там, например).

export function loadingSpinner(propsFn) {
  return target => {
    const oldRender = target.prototype.render;
    target.prototype.render = function render(…args) {
      const isLoading = propsFn(this.props);
      if (isLoading) {
        return (<Spinner />);
      }
      return oldRender.apply(this, args);
    };
  };
}

И след това просто украсете компонент като:

@loadingSpinner(props => props.categories.loading)