我想在创建随机组件之后但在呈现它之前调用一个方法。在渲染父级之前为父级执行子级特定计算。一个简单的静态方法应该起作用。
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类的实例。
答案 0 :(得分:0)
React.createClass
是deprecated,并已从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;
}
}