跳至主要內容
版本:v18.0.0

定義欄位

在用戶端類型上定義欄位就像定義一個解析器函式一樣簡單,它接受您的模型類型實例作為其第一個參數並回傳欄位值。請注意,匯出的函式名稱必須與欄位名稱相符。

語法

Relay 解析器透過解析器函式上方的 docblock 來標記。@RelayResolver 是用來表示任何 Relay 解析器定義的起始標籤。要在 GraphQL 模型類型 TypeName 上定義欄位

使用 GraphQL 的 schema 定義語言新增 TypeName,接著加上一個點,然後是欄位定義:https://spec.graphql.org/June2018/#FieldDefinition

/**
* @RelayResolver TypeName.fieldName(arg1: ArgTypeName): FieldTypeName
*/

一個簡單的欄位可能看起來像這樣

/**
* @RelayResolver User.name: String
*/
export function name(user: UserModel): string {
return user.name;
}
注意

當任何輸入(在此情況下為模型實例)發生變化時,Relay 會負責有效率地重新計算解析器,因此您無需擔心記憶您的解析器函式。

這只是一個簡單的解析器,它從模型類型讀取並回傳純量值。要了解解析器欄位支援的完整功能,請參閱