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);