Javascript 能否在React组件类中添加外部函数作为方法?
考虑到以下反应成分:Javascript 能否在React组件类中添加外部函数作为方法?,javascript,class,reactjs,refactoring,dry,Javascript,Class,Reactjs,Refactoring,Dry,考虑到以下反应成分: class MyComponent extends Component { sayGreeting = () => { return this.props.greeting; } render() { return ( <div>{this.sayGreeting()}</div> ); } } 通过从该文件导入sayGreeting并将MyComponent的原型设置为: import
class MyComponent extends Component {
sayGreeting = () => {
return this.props.greeting;
}
render() {
return (
<div>{this.sayGreeting()}</div>
);
}
}
通过从该文件导入sayGreeting并将MyComponent的原型设置为:
import { sayGreeting } from './someFile';
// ...
MyComponent.prototype.sayGreeting = sayGreeting;
但问题是“this”关键字,因此不会定义道具。我尝试使用
this.sayGreeting=this.sayGreeting.bind(this)
在构造函数中绑定,但没有成功。将this
传递到函数中
export const sayGreeting = ({props}) => {
return props.greeting;
};
然后在导入后使用:
说问候语(this)
您可以使用:
constmyhoc=(composedComponent)=>{
返回类扩展了React.Component{
sayGreeting=()=>{
返回此.props.greeting;
}
render(){
返回;
}
};
};
类MyComponent扩展了React.Component{
render(){
返回{this.props.sayGreeting()}
}
}
导出默认MyHOC(MyComponent);
你可以通过道具
,比如{this.sayGreeting(props)}
export const sayGreeting = ({props}) => {
return props.greeting;
};
const myHOC = (composedComponent) => {
return class extends React.Component {
sayGreeting = () => {
return this.props.greeting;
}
render() {
return <ComposedComponent sayGreeting={ this.sayGreeting } />;
}
};
};
class MyComponent extends React.Component {
render() {
return <div>{this.props.sayGreeting()}</div>
}
}
export default MyHOC(MyComponent);