Por que a saída ‘undefined’ da fórmula do Notion difere entre modos de exibição
🔍 WiseChecker

Por que a saída ‘undefined’ da fórmula do Notion difere entre modos de exibição

Você escreveu uma fórmula do Notion que retorna um valor em um modo de exibição, mas mostra undefined ao alternar para outro modo. Esse problema geralmente ocorre porque diferentes modos de exibição — como Tabela, Board ou Galeria — lidam de forma diferente com resultados de fórmulas vazios ou ausentes. Fórmulas do Notion que dependem de outras propriedades do banco de dados podem retornar undefined quando essas propriedades não estão visíveis ou não são carregadas na visualização atual. Este artigo explica por que a saída undefined aparece de forma inconsistente e como corrigir sua fórmula para que ela retorne um resultado estável em todos os modos de exibição.

A causa raiz é que o Notion avalia as fórmulas com base nas propriedades que estão sendo renderizadas na visualização. Em uma visualização de Tabela, todas as propriedades são carregadas, então a fórmula tem acesso total aos dados. Em uma visualização de Board ou Galeria, algumas propriedades podem estar ocultas ou não serem buscadas até que o cartão seja aberto. Quando uma fórmula referencia uma propriedade que não está carregada, o Notion retorna undefined em vez do valor esperado. Você aprenderá como reescrever sua fórmula para lidar com dados ausentes e garantir uma saída consistente.

Após aplicar as correções deste artigo, sua fórmula retornará um valor estável — como uma string vazia, um número padrão ou um texto de fallback — independentemente do modo de exibição. Você também aprenderá como testar fórmulas em diferentes visualizações antes de finalizá-las. Isso economiza tempo e evita erros de exibição de dados em espaços de trabalho compartilhados.

Principais conclusões: Por que a saída ‘undefined’ da fórmula do Notion difere entre modos de exibição

  • Referência de propriedade da fórmula a uma coluna oculta: Quando a propriedade referenciada não é carregada na visualização atual, a fórmula retorna undefined.
  • Usar a função empty() na sua fórmula: Envolve cada referência de propriedade com empty() para retornar um valor de fallback quando a propriedade está ausente.
  • Testar na visualização de Tabela e depois alternar para Board ou Galeria: Confirma que a saída da fórmula permanece estável após alternar os modos de exibição.

ADVERTISEMENT

Por que os modos de exibição alteram a saída da fórmula

Os bancos de dados do Notion suportam vários modos de exibição: Tabela, Board, Galeria, Lista, Calendário e Linha do Tempo. Cada modo renderiza as propriedades de forma diferente. Na visualização de Tabela, cada coluna de propriedade está visível e carregada quando a página é aberta. Na visualização de Board, apenas o título do cartão e algumas propriedades de pré-visualização são mostradas; o restante é carregado apenas quando você abre o painel de detalhes do cartão. A visualização de Galeria se comporta de forma semelhante — mostra uma imagem ou capa e alguns campos de texto, mas a maioria dos valores das propriedades não é buscada até que o cartão seja expandido.

Quando uma fórmula referencia uma propriedade que não está carregada na visualização atual, o Notion não consegue avaliar essa referência. Em vez de retornar uma string vazia ou zero, o Notion retorna o valor literal undefined. Este é um comportamento específico das propriedades de fórmula — não acontece com propriedades de texto ou número comuns, pois elas são exibidas em branco quando não carregadas.

Como o Notion avalia as dependências da fórmula

As fórmulas do Notion são calculadas no lado do servidor, mas o cliente (seu navegador ou aplicativo) solicita os valores com base no que está visível. Se uma propriedade não está na janela de visualização ou não faz parte do modo de exibição atual, o cliente pode não solicitar seu valor. O servidor então retorna undefined para essa propriedade, que se propaga no resultado da sua fórmula. Isso não é um bug — é uma otimização de desempenho que reduz a transferência de dados para bancos de dados grandes.

Quais modos de exibição são mais afetados

As visualizações de Board e Galeria são os gatilhos mais comuns para esse problema. As visualizações de Calendário e Linha do Tempo também ocultam muitas propriedades por padrão. A visualização de Lista mostra apenas o título e uma pequena pré-visualização, portanto também pode produzir undefined para fórmulas que referenciam propriedades não visíveis. A visualização de Tabela é o único modo que carrega todas as propriedades, tornando-o o ambiente mais seguro para testar fórmulas.

Passos para reescrever uma fórmula que retorna undefined na visualização de Board ou Galeria

Siga estes passos para modificar sua fórmula de modo que ela retorne um valor estável independentemente do modo de exibição. A chave é verificar cada propriedade referenciada quanto a undefined e fornecer um fallback.

  1. Identifique quais propriedades a fórmula referencia
    Abra o banco de dados na visualização de Tabela. Clique no cabeçalho da propriedade de fórmula e selecione Editar fórmula. Observe cada nome de propriedade usado na fórmula. Anote-os. Por exemplo, se sua fórmula é prop("Preço") * prop("Quantidade"), as propriedades referenciadas são Preço e Quantidade.
  2. Envolva cada referência de propriedade com a função empty()
    Use a função empty() para verificar se o valor da propriedade está ausente. A sintaxe é if(empty(prop("Preço")), 0, prop("Preço")). Isso retorna 0 se Preço for undefined ou vazio, caso contrário retorna o valor real de Preço. Substitua cada chamada direta prop() por esse padrão.
  3. Aplique o fallback em toda a sua fórmula
    Reescreva a fórmula completa usando as referências encapsuladas. Para o exemplo de Preço vezes Quantidade, a nova fórmula se torna: if(empty(prop("Preço")), 0, prop("Preço")) * if(empty(prop("Quantidade")), 0, prop("Quantidade")). Isso garante que, se qualquer propriedade não estiver carregada, a fórmula use 0 em vez de undefined.
  4. Teste a fórmula primeiro na visualização de Tabela
    Clique em Salvar no editor de fórmulas. Verifique se a fórmula retorna o resultado numérico esperado na visualização de Tabela. Se você vir algum erro, verifique novamente os nomes das propriedades e os parênteses nas suas chamadas if(empty(...)).
  5. Alterne para a visualização de Board ou Galeria para confirmar a estabilidade
    Mude a visualização do banco de dados para Board ou Galeria. Observe a propriedade de fórmula em vários cartões. A saída agora deve mostrar o valor de fallback (0 neste exemplo) em vez de undefined. Se você ainda vir undefined, a fórmula pode referenciar uma propriedade que não está incluída na pré-visualização do cartão — adicione essa propriedade às configurações de pré-visualização do cartão.

Alternativa: Use a função coalesce() para fórmulas de texto

Se sua fórmula retorna texto, você pode usar a função coalesce() para substituir undefined por uma string padrão. Por exemplo, coalesce(prop("Nome"), "Sem nome") retorna “Sem nome” quando Nome é undefined ou vazio. Isso é mais curto do que usar if(empty(...)) para cada propriedade de texto.

ADVERTISEMENT

Se o Notion ainda mostrar undefined após reescrever a fórmula

Às vezes, a correção acima não é suficiente porque a propriedade referenciada está completamente excluída do modo de exibição. Aqui estão etapas adicionais para resolver o problema.

A propriedade referenciada não está na pré-visualização do cartão

Na visualização de Board, cada cartão mostra apenas as propriedades que você adiciona à pré-visualização do cartão. Se sua fórmula referencia uma propriedade que não está na pré-visualização, essa propriedade nunca é carregada, e empty() sempre retornará verdadeiro. Para corrigir isso, abra a visualização de Board, clique no menu de visualização, selecione Layout e adicione a propriedade ausente à seção de Pré-visualização do Cartão. A fórmula então terá acesso ao valor da propriedade.

A fórmula contém uma função aninhada que não lida com undefined

Algumas funções de fórmula do Notion, como dateAdd() ou formatDate(), geram um erro se sua entrada for undefined. Mesmo que você envolva a propriedade com empty(), o erro ainda pode aparecer se o valor de fallback não for compatível com a função. Por exemplo, dateAdd(if(empty(prop("Data")), now(), prop("Data")), 1, "days") usa now() como fallback em vez de uma string vazia. Verifique se cada valor de fallback corresponde ao tipo de dado esperado pela função.

A propriedade de fórmula não é atualizada após mudar de visualização

O Notion armazena em cache os resultados das fórmulas para desempenho. Se você alternar da visualização de Tabela para a de Board e a fórmula ainda mostrar undefined, force uma atualização clicando no cabeçalho da propriedade de fórmula e selecionando Recalcular. Alternativamente, feche e reabra a página do banco de dados. Isso limpa os resultados em cache e reavalia a fórmula com os dados da visualização atual.

Estabilidade da saída da fórmula do Notion: Tabela vs Board vs Galeria

Modo de Exibição Propriedades Carregadas por Padrão Saída da Fórmula Sem Fallback
Tabela Todas as propriedades nas colunas Valor correto
Board Apenas propriedades na pré-visualização do cartão Undefined para propriedades não pré-visualizadas
Galeria Apenas título e capa Undefined para a maioria das propriedades
Lista Título e uma linha de pré-visualização Undefined para propriedades não pré-visualizadas
Calendário Propriedade de data e título Undefined para outras propriedades
Linha do Tempo Intervalo de datas e título Undefined para outras propriedades

Esta tabela mostra que a visualização de Tabela é o único modo que carrega todas as propriedades. Todos os outros modos limitam quais propriedades são buscadas, fazendo com que fórmulas que referenciam propriedades não carregadas retornem undefined. Usar funções de fallback como empty() ou coalesce() garante que sua fórmula funcione em qualquer visualização.

Agora você entende por que a saída da fórmula do Notion muda entre modos de exibição e como evitar resultados undefined. Comece editando sua fórmula para envolver cada propriedade referenciada com empty() e fornecer um valor padrão. Teste a fórmula primeiro na visualização de Tabela e depois alterne para a visualização de Board ou Galeria para confirmar a estabilidade. Para fórmulas complexas, adicione propriedades ausentes à pré-visualização do cartão na visualização de Board. Como dica avançada, use a função coalesce() para propriedades de texto para reduzir o comprimento da fórmula e melhorar a legibilidade.

ADVERTISEMENT