私はMaterialUIを使用しています。具体的には、コンポーネントレベルで検証状態を扱うように飾るTextField
コンポーネントです。React HOCは匿名を返す_class
私は反応中のHOCについて知っています。これは、これには完璧と思われるパターンです。しかし、返される型はTextField
の代わりに_class
であるため、匿名クラスを返さなければならないため、TextField
コンポーネントの値を返すことができません。
HOCパターンに問題がありますか、プロトタイプを変更せずにコンポーネントを再利用する最良の方法ではないでしょうか。どんな助けでも大歓迎です。
HOC宣言
export default function hocInputValidator(WrappedComponent){
return class extends Component{
constructor(props){
super(props);
}
handleChange(){
console.log('Handling from HOC');
}
render(){
return <WrappedComponent {...this.props}/>
}
}
}
呼び出しと飾らコンポーネント
export default hocInputValidator(TextField);
のエクスポート私はrefs
経由で装飾されたコンポーネントにアクセスしようとすると、タイプが_class
代わりのTextField
です。
問題の解決方法はありましたか?私たちに知らせてください。そうでない場合、私たちはさらにそれを理解するためにあなたを助けることができます。 –
こんにちは、Ravindra!いいえ、残念なことに、HOCがこれのための最善の解決策ではないか、マテリアルUI側でコンポーネントの実装に関するいくつかの問題があるかどうか、奇妙なことは、HOCが一種の構成であることこれを実装することでこれを解決することが可能でなければならず、構成はLiskov Substitution Principle(SOLID原理の1つ)以外の何ものでもないので、ロジックの観点からは意味があります(私はちょうど推測しています)。 –