Suporte de tipos de união no relé
Quando você define o campo como uma união de dois tipos (no exemplo, as máquinas contêm Ships e Droid), no Relay, você pode fazer algo assim:
fragment on Faction@ relay(plural: true) {
name,
machines {
... on Ship {
name
}
... on Droid {
name,
primaryFunction
}
}
}
portanto, em máquinas prop, seus objetos são avaliados corretamente, mas se você quiser fazer isso usando fragmentos de componentes externos:
fragment on Faction@ relay(plural: true) {
name,
machines {
${StarWarsShip.getFragment('ship')}
${StarWarsDroid.getFragment('droid')}
}
}
então você acaba com definições de fragmento em máquinas. Parece que você está preso e não pode verificar qual objeto é qual tipo de matriz de máquinas, portanto não pode decidir qual componente deve ser usado.