Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.
A instância do Ant Design Form dentro do bloco atual, usada para ler/escrever campos de formulário, disparar validação e submissão. É equivalente a ctx.blockModel?.form e pode ser usada diretamente em blocos relacionados a formulários (Formulário, Formulário de Edição, Subformulário, etc.).
| Cenário | Descrição |
|---|---|
| JSField | Ler/escrever outros campos do formulário para implementar vinculação (linkage), ou realizar cálculos e validações baseados em outros valores de campos. |
| JSItem | Ler/escrever campos da mesma linha ou outros campos em itens de sub-tabelas para obter vinculação dentro da tabela. |
| JSColumn | Ler os valores da linha atual ou de campos associados em uma coluna de tabela para renderização. |
| Ações de Formulário / Fluxo de Trabalho | Validação pré-submissão, atualização de campos em lote, redefinição de formulários, etc. |
Nota:
ctx.formestá disponível apenas em contextos RunJS relacionados a blocos de formulário (Formulário, Formulário de Edição, Subformulário, etc.). Ele pode não existir em cenários que não sejam de formulário (como JSBlocks independentes ou blocos de Tabela). Recomenda-se realizar uma verificação de valor nulo antes do uso:ctx.form?.getFieldsValue().
FormInstance é o tipo de instância do Ant Design Form. Os métodos comuns são os seguintes.
| Cenário | Uso Recomendado |
|---|---|
| Ler/Escrever campo atual | ctx.getValue() / ctx.setValue(v) |
| Ler/Escrever outros campos | ctx.form.getFieldValue(name) / ctx.form.setFieldValue(name, v) |
Dentro do campo JS atual, priorize o uso de getValue/setValue para ler/escrever o próprio campo; use ctx.form quando precisar acessar outros campos.
| Necessidade | Uso Recomendado |
|---|---|
| Ler/Escrever campos de formulário | ctx.form (Equivalente a ctx.blockModel?.form, mais conveniente) |
| Acessar bloco pai | ctx.blockModel (Contém coleção, recurso, etc.) |
Os valores do formulário devem ser obtidos via await ctx.getVar('ctx.formValues') e não são expostos diretamente como ctx.formValues. Em um contexto de formulário, é preferível usar ctx.form.getFieldsValue() para ler os valores mais recentes em tempo real.
getFieldsValue() retorna apenas campos renderizados por padrão. Para incluir campos não renderizados (ex: em seções colapsadas ou ocultos por regras condicionais), passe true: getFieldsValue(true).['orders', 0, 'amount']. Você pode usar ctx.namePath para obter o caminho do campo atual e construir caminhos para outras colunas na mesma linha.validateFields() lança um objeto de erro contendo errorFields e outras informações. Se a validação falhar antes da submissão, você pode usar ctx.exit() para interromper as etapas subsequentes.ctx.form pode ainda não estar pronto. Recomenda-se usar encadeamento opcional (optional chaining) ou verificações de nulo.ctx.form é equivalente a ctx.blockModel?.form.ctx.form.validateFields() e ctx.form.submit().ctx.namePath: O caminho (array) do campo atual no formulário, usado para construir nomes para getFieldValue / setFieldValue em campos aninhados.