2017-12-23 6 views
2

Ich habe folgende Neuzusammenstellung, Lifecycle-HOC:Wie setze ich defaultParams mit einer neu zusammengestellten Lebenszyklus-HOC?

import { lifecycle } from 'recompose'; 

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

export default myHoc; 

ich diesen HOC in meinen Komponenten verwenden, wie so:

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

Was ich mit params den HOC zu verwenden ist in der Lage tun möchte so wie:

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

und dann im HOC haben Standardeinstellungen für param1 und params 2 & 3 erforderlich sein oder ein Fehler auftreten würde.

Ist dies mit dem Lebenszyklus der Neuzusammenstellung möglich? Danke

+0

Oder gibt es vielleicht eine bessere Möglichkeit, Props/Params/Properties an die HOC zu übergeben? Ich würde denken, dass der HOC einen Fehler werfen sollte, wenn 1 oder mehr der erforderlichen Parameter fehlen? – AnnaSm

Antwort

2

Sie können die Parameter-Destrukturierung in der HOC-Funktion verwenden. Sie können einen Fehler auslösen, wenn Sie möchten, dass der Code fehlschlägt, wenn die erforderlichen Parameter nicht bereitgestellt werden.

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); 
     } 
    }); 
} 
Verwandte Themen