提交前函数允许你在表单提交到后端之前在前端运行一个函数,并可以选择性地修改文档的值。
import { TinaCMS, Form } from 'tinacms'type BeforeSubmitFunction = (args: {values: Record<string, unknown>cms: TinaCMSform: Form}) => Promise<void | Record<string, unknown>>
// tina/config.{ts.js}export default defineConfig({schema: {collections: [{ui: {// 提交前的示例beforeSubmit: async ({form,cms,values,}: {form: Formcms: TinaCMSvalues: Record<string, any>}) => {return {...values,lastUpdated: new Date().toISOString(),}},//...},//...},//...],},//...})
export default defineConfig({schema: {collections: [{ui: {beforeSubmit: async ({form,cms,values,}: {form: Formcms: TinaCMSvalues: Record<string, any>}) => {if (form.crudType === 'create') {return {...values,createdAt: new Date().toISOString(),}}},//...},//...},//...],},//...})
export default defineConfig({schema: {collections: [{ui: {beforeSubmit: async ({form,cms,values,}: {form: Formcms: TinaCMSvalues: Record<string, any>}) => {return {...values,slug: values.title.toLowerCase().replace(/ /g, '-').replace(/[^\w-]+/g, ''),}},//...},//...},//...],},//...})