Поддержка типов типов в Relay
Если вы определили поле как объединение двух типов (например, машины содержат Ships и Droid), тогда в Relay вы можете сделать что-то подобное:
fragment on Faction@ relay(plural: true) {
name,
machines {
... on Ship {
name
}
... on Droid {
name,
primaryFunction
}
}
}
Таким образом, при использовании машин ваши объекты правильно оцениваются, но если вы хотите сделать это, используя фрагменты из внешних компонентов:
fragment on Faction@ relay(plural: true) {
name,
machines {
${StarWarsShip.getFragment('ship')}
${StarWarsDroid.getFragment('droid')}
}
}
тогда вы в конечном итоге с определениями фрагментов под машины. Похоже, вы попали в ловушку и не можете проверить, какой объект какого типа в массиве машин, поэтому вы не можете решить, какой компонент следует использовать.