2017-02-22 13 views
6

Podczas korzystania flowtype zdefiniować rekwizyt w context w ten sposóbjak można użyć typu flow do zdefiniowania podpory w kontekście reakcji komponentu?

// @flow 
type MyType = Object; 
class CustomView extends React.Component { 
    static childContextTypes = { 
     someProp: MyType 
    } 
    getChildContext() { 
     return { 
      someProp: this.props.someProp 
     }; 
    } 
} 

mam następujący błąd:

CustomView: type specification of child context someProps is invalid; the type checker function must return null or an Error but returned a object. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).

Więc jestem zmuszony do korzystania propTypes.object zamiast Object.

Odpowiedz

4

Nie, nie można używać typu przepływu jako typu w childContextTypes. Powodem jest to, że childContextTypes jest sprawdzane w środowisku wykonawczym, a typy przepływu nie mają żadnej reprezentacji środowiska wykonawczego. Dlatego "typy" w childContextTypes muszą być wartościami - konkretnie wartościami podanymi przez pakiet NPM prop-types.

Użycie w naszym przykładzie MyType jest w rzeczywistości błędem składni: MyType pojawia się w pozycji wartości właściwości obiektu, która musi być wartością, a nie typem.

Powiązane problemy