J'ai un composant enveloppé dans un conteneur de relais:Comment définir les accessoires par défaut pour un composant encapsulé dans un conteneur Raley?
const Widget = (props) => {
return (
<div> { props.foo.bar } </div>
)
}
Widget.defaultProps = { foo: {bar: 0} }
export default Relay.createContainer(Widget, {
fragments: {
store:() => Relay.QL`
fragment on WidgetData {
foo {
bar
}
}
`
}
})
J'utilise un GraphQL-as-a-service fournisseur pour un back-end, et lorsque la propriété foo
de WidgetData
n'est pas présent, il retourne null
, qui jette quand on essaie de rendre mon composant props.null.bar
pour autant que je sache, defaultProps
ne fonctionne que lorsque l'hélice est undefined
, pas quand il est null
.
Comment puis-je protéger contre null
résultats avec defaultProps
dans ce cas? Espérant éviter d'écrire une déclaration de garde pour chaque prop
Je référence, si possible.
pourrait simplement modifier manuellement le constructeur: 'const bar = props.foo || 'default'' et '
ouais, c'est ce que je fais maintenant, mais ça peut devenir assez fastidieux avec beaucoup d'accessoires/profondément imbriqués. 'defaultProps' se sent beaucoup mieux d'un ajustement, esp. puisque je définis déjà ma forme 'prop' pour' propTypes' – Brandon