对createClass结果的调用方法应该很简单

时间:2019-06-07 02:04:05

标签: reactjs

我想在创建随机组件之后但在呈现它之前调用一个方法。在渲染父级之前为父级执行子级特定计算。一个简单的静态方法应该起作用。

class Container extends ReactWrapper{

    render() {
    const rClass = React.createClass(this.getCCArgs());
    var newData = rClass.expectedUtilityFunction(data); 
    // render parent with new data.
      return (<div {...this.props.data, ...newData}>
          {rClass}
      </div>);
   };
};

尝试了多种方法,但始终找不到实用程序方法。 我可以在逻辑上把事情推上去,并添加一个方法来返回用于根据输入数据创建react实例的类,但是我已经有了react类的实例。

1 个答案:

答案 0 :(得分:0)

React.createClassdeprecated,并已从React 16+中删除。因此,我建议停止tring使其正常工作。

您的代码非常适合High order component

下面是示例代码(我没有对其进行测试,因此仅将其用作提示)

function WrappedComponent (Component, props) {
    var newData = /* Here is good place for expectedUtilityFunction code. Don't put expectedUtilityFunction function into Component, put it here, in HOC body */ 
    // render parent with new data.
    return (<div {...props.data, ...newData}>
        <Component/>
    </div>);
}

并像这样使用HOC

class Container extends ReactWrapper{
    constructor(props) {
        supre(props);
        // Assuming that this.getCCArgs() returns component
        this.hoc = WrappedComponent (this.getCCArgs(), props);
    }

    render() {
        return this.hoc;
    }
}