Zum Inhalt springen

Zusätzliche Spalten/Felder

Wenn Sie eine Spalte einbeziehen möchten, die nicht direkt auf eine Eigenschaft abgebildet wird, können Sie das additionalFields-Feld verwenden und einen AdditionalFieldDelegate bereitstellen, der eine ID, einen Titel und einen Builder enthält, der die entsprechende Entity empfängt.

Im Builder können Sie beliebige React-Komponenten zurückgeben.

import {
buildCollection,
buildCollection,
AdditionalFieldDelegate
} from "@firecms/core";
type User = { name: string }
export const fullNameAdditionalField: AdditionalFieldDelegate<User> = {
key: "full_name",
name: "Full Name",
Builder: ({ entity }) => {
let values = entity.values;
return typeof values.name === "string" ? values.name.toUpperCase() : "No name provided";
},
dependencies: ["name"]
};
const usersCollection = buildCollection<User>({
path: "users",
name: "User",
properties: {
name: { dataType: "string", name: "Name" }
},
additionalFields: [
fullNameAdditionalField
]
});
import {
buildCollection,
AdditionalFieldDelegate,
AsyncPreviewComponent
} from "@firecms/core";
export const productAdditionalField: AdditionalFieldDelegate<Product> = {
key: "spanish_title",
name: "Spanish title",
Builder: ({ entity, context }) =>
<AsyncPreviewComponent builder={
context.dataSource.fetchEntity({
path: entity.path,
entityId: entity.id,
collection: localeSchema
}).then((entity) => entity.values.name)
}/>
};