我有一個更高階的組件。我可以從HOC繼承props
到我的Wrapped Component,但我也想繼承它的方法/函數。做這個的最好方式是什麼。我如何從React中的HOC(高階組件)訪問方法/函數而不將其作爲通道傳遞?
我想用this.myHocFunc
而不是this.props.myHocFunc
。我也不想在包裝組件中映射this.myHocFunc
到this.props.myHocFunc
。所有的邏輯需要理想的HOC組件
這裏面發生的事情是我的特別組成部分:
import React, { Component } from "React";
export var MyEnhance = ComposedComponent => class extends Component {
constructor() {
super();
}
myHocFunc(text) {
// text should be 'hello world'
console.log(text);
}
componentDidMount() {
}
render() {
return <ComposedComponent {...this.props} />;
}
};
這裏是我的包裹成分:
import React from 'react';
import ReactDOM from 'react-dom';
import { MyEnhance } from "./enhance";
@MyEnhance
class MyComponent extends React.Component {
render() {
return <button onClick={this.myHocFunc('hello world')}</div>;
}
};
ReactDOM.render(<MyComponent />, document.getElementById('root'));
在此先感謝
這似乎有點迂迴。你爲什麼要這樣做? –
這是一個非常簡單的例子。它實際上是更新一個具有大量組件的應用程序,它們都具有功能。這些組件被封裝在一個HOC中,因此我想將該功能移到HOC中,而不必將組件'this.func'中的所有函數引用更新爲'this.props.func' – BennyTicklez