2017-12-23 3 views
2

私は、次のように再構成、ライフサイクルHOCを持っている:リコンストラクチャ、ライフサイクルHOCでdefaultParamsを設定するにはどうすればよいですか?

import { lifecycle } from 'recompose'; 

export function myHoc(title) { 
    return lifecycle({ 
     componentDidMount() { 
      console.log(title) 
     } 
    }); 
} 

export default myHoc; 

ので、同様に、私は私のコンポーネントでこのHOCを使用します。私がやりたい何

export default myHoc('x')(PageName); 

はのparamsでHOCを使用することができるようです

export default myHoc({ 
    param1: "somevalue", 
    param2: "somevalue", 
    param3: "somevalue", 
})(PageName); 

そしてHOCで、PARAM1とのparams 2 & 3に設定されたデフォルトが必要とされているか、エラーが発生します:。そうのような

これは再構成ライフサイクルで可能ですか?ありがとう

+0

また、HOCにprops/params/propertiesを渡すより良い方法がありますか? 1つ以上の必要なパラメータがない場合、HOCはエラーをスローする必要がありますか? – AnnaSm

答えて

2

HOC関数でパラメータの構造解除を使用できます。必要なパラメータが提供されていない場合、コードにエラーが出るようにするには、Errorをスローすることができます。

export function myHoc({param1 = 'default', param2, param3}) { 
    if (!param2) { 
     throw new Error('param2 is required'); 
    } 

    if (!param3) { 
     throw new Error('param3 is required'); 
    } 

    return lifecycle({ 
     componentDidMount() { 
      console.log(param2); 
     } 
    }); 
} 
関連する問題