如何在不使用静态函数的情况下重写这个高阶函数?

How do rewrite this higher order function without using static functions?

我正在寻找的功能在这里使用静态函数语法可以完美地工作,但是,我喜欢在构造函数本身上声明的静态函数(即 className.staticFunction () => ... 而不是 static staticFunction = () => ... class 定义本身。

这是我所指的代码,我想重构它以使用在 constructor/function 上定义的静态函数,而不是如下所示的 static 语法。

const higherOrderFunction = another => andAnother => class extends Component {

  static functionName = {
    test: React.PropTypes.object
  };

  constructor(props) {
    super(props);
  }

  render() {
    return <h1>Hello, World!</h1>;
  }
};

export default higherOrderFunction;

class 的值与您在没有 类 的情况下定义的构造函数 function 相同。所以:

const higherOrderFunction = another => andAnother => Component;

function Component() {}

Component.functionName = () => {
  test: React.PropTypes.object
};

Component.prototype.render = () => {
  return <h1>Hello, World!</h1>;
}

export default higherOrderFunction;

您可能希望将函数和成员定义包装在函数体中以封装和使用任何参数:

const higherOrderFunction = another => andAnother => {
  function Component() {}

  Component.functionName = () => {
    test: React.PropTypes.object
  };

  Component.prototype.render = () => {
    return <h1>Hello, World! {another} and {andAnother}</h1>;
  }

  return Component;
};

export default higherOrderFunction;