0
使用@include指示我有使用@include(if: $variable)
有條件地提取一些領域的繼電器容器,但我寫的每一個人領域的指令:爲多個字段
const relayOptions = {
initialVariables: {
expandDetails: false,
},
fragments: {
company: Relay.QL`
fragment on Company {
id
name
employees @include(if: $expandDetails) {
fullName
}
admins @include(if: $expandDetails) {
fullName
}
departments @include(if: $expandDetails) {
name
}
}
`,
},
}
有什麼辦法,我可以寫指令只有一次,例如像這樣(我知道這個代碼將無法正常工作):
const relayOptions = {
initialVariables: {
expandDetails: false,
},
fragments: {
company: Relay.QL`
fragment on Company {
id
name
@include(if: $expandDetails) {
employees {
fullName
}
admins {
fullName
}
departments {
name
}
}
}
`,
},
}
我嘗試了一些其他的瘋狂方式,但他們沒有工作,我得到這個錯誤:
'@include' can't be applied to fragment definitions (allowed: fields, fragment spreads, inline fragments)
編輯:注:我需要這樣做,以避免不必要的數據提取。如果展開數據的可摺疊組件已擴展(我打算在安裝組件後使用setVariables
進行此操作),我只想抓取數據。 在這個例子中,只有3個條件字段,但在實際情況下,我試圖解決的問題還有很多。