定義欄位
在用戶端類型上定義欄位就像定義一個解析器函式一樣簡單,它接受您的模型類型實例作為其第一個參數並回傳欄位值。請注意,匯出的函式名稱必須與欄位名稱相符。
語法
Relay 解析器透過解析器函式上方的 docblock 來標記。@RelayResolver
是用來表示任何 Relay 解析器定義的起始標籤。要在 GraphQL 模型類型 TypeName
上定義欄位
- Docblock
使用 GraphQL 的 schema 定義語言新增 TypeName
,接著加上一個點,然後是欄位定義:https://spec.graphql.org/June2018/#FieldDefinition
/**
* @RelayResolver TypeName.fieldName(arg1: ArgTypeName): FieldTypeName
*/
一個簡單的欄位可能看起來像這樣
- Docblock
/**
* @RelayResolver User.name: String
*/
export function name(user: UserModel): string {
return user.name;
}
注意
當任何輸入(在此情況下為模型實例)發生變化時,Relay 會負責有效率地重新計算解析器,因此您無需擔心記憶您的解析器函式。
這只是一個簡單的解析器,它從模型類型讀取並回傳純量值。要了解解析器欄位支援的完整功能,請參閱