smalljs$molPesquisar⌘ KDocsPlaygroundCompararEcossistemaSobrePT
Solução de problemasGetting StartedIntroduçãoModelo mentalPrimeiros passosDe TypeScript para view.treeEstrutura do projetoFerramentasEssentialsInstalaçãoViewsEstado e reatividadeRoteamentoRenderizaçãoTestesDeploySolução de problemasDataBusca de dadosEsquemas de dadosGiper BazaMoreVitrineDe React, Vue e SvelteLivro de receitasAdvancedPluginsMetadados de móduloOfflineVistas fantasmaAboutFAQEquipeLançamentosAPI$mol_button_major$mol_button_minor$mol_string$mol_number$mol_text$mol_paragraph$mol_list$mol_row$mol_link$mol_check$mol_switch$mol_select$mol_scroll$mol_page$mol_pick

Solução de problemas

Cada entrada desta página tem a mesma forma: o build está verde, a auditoria está limpa, o console está calado, e a tela está vazia ou não é o que você queria. O compilador não enxerga esses erros porque cada um deles é um programa válido que, por acaso, descreve outro componente. Ache o título que soa como o que você está vendo; debaixo dele estão a causa e a correção.

Minha sobrescrita de propriedade não faz nada, sem erro

O nome no view.tree e o nome do método na classe diferem, na maioria das vezes nas maiúsculas: exchange_form na árvore, exchangeForm na classe. São duas propriedades. A da classe nunca é chamada, a da árvore mantém seu padrão, e nada avisa.Os nomes são snake_case em todo lugar e precisam bater letra por letra. Depois de editar um .view.ts, confira se cada sobrescrita ainda nomeia uma propriedade existente; o -view.tree/*.view.tree.d.ts gerado ao lado da árvore é a lista com que comparar.

Preciso de placeholder, disabled ou type num input

São propriedades de $mol_string: hint para o placeholder, enabled para o estado desabilitado, type para o tipo de entrada. Defina-as onde a entrada é usada:1<= Password $mol_string2 hint \Password3 type \password4 enabled <= can_edit true5 value? <=> password? \Qualquer outra propriedade de qualquer outro componente se acha do mesmo jeito: abra o .view.tree dela, como mostra Como ler os fontes.attr * é para atributos DOM de verdade que o componente ainda não modela, e tem uma armadilha própria: um bloco sem ^ na primeira linha substitui o dicionário de atributos inteiro da base, então um $mol_button escrito assim perde disabled, role e tabindex. Comece o bloco com ^ para herdar, e só então acrescente suas chaves:1attr *2 ^3 data_kind \primary

Uma palavra aparece letra por letra

Uma string foi passada onde se espera uma lista, e a string foi espalhada caractere por caractere. Strings começam com \, listas começam com /. O caso de sempre é sub, que é uma lista:1sub / <= label \Hello

A tela está vazia, os testes estão verdes

Uma sobrescrita caiu fora do .view.ts. A árvore dá a toda propriedade um padrão, então quando a classe para de redefinir rows(), o TypeScript fica satisfeito e a lista renderiza vazia. Testes que só checam o modelo seguem verdes porque o modelo está bem.Para cada sobrescrita de que a tela depende, escreva um teste que leia o que o usuário vê: rows(), sub(), title() das subviews, ou o DOM. Testes mostra as duas formas.

Os dados nunca carregam, um componente fica travado no estado de carregamento

Um método @ $mol_mem retornou uma promise como valor: fetch( uri ).then( ... ), um método async, ou o resultado de $mol_wire_async( this ).load(). Uma promise dentro da célula significa, para todo mundo, «ainda calculando», e quando ela resolve a célula recalcula e produz uma promise nova. A rede funciona; a view nunca vê um resultado.A forma certa é síncrona: chame this.$.$mol_fetch.json( uri ) dentro da célula e retorne o valor já parseado. A fibra suspende até a resposta chegar e então roda a célula de novo, então a promise nunca aparece no seu código. Onde o trabalho assíncrono precisa mesmo acontecer em outro lugar, ponha o resultado dele numa célula de estado separada e faça o efeito retornar uma flag ou uma chave, nunca a promise.Uma segunda causa é um erro engolido: um try/catch dentro de uma célula que captura a suspensão junto com as falhas de verdade. Relance tudo o que for uma Promise, ou use $mol_fail_catch, que faz essa checagem por você.

Inscrição circular

Editar esta página no GitHubIsto foi útil?SimNãoAnteriorDeployPróximoBusca de dados
Nesta páginaMinha sobrescrita de propriedade não faz nada, sem erroPreciso de placeholder, disabled ou type num inputUma palavra aparece letra por letraA tela está vazia, os testes estão verdesOs dados nunca carregam, um componente fica travado no estado de carregamentoInscrição circularMaximum call stackUm valor escrito com letra maiúscula não pode ser sobrescrito do TypeScriptToda linha de uma lista aninhada mostra o mesmo itemMudei a classe de uma subview e o conteúdo dela sumiuMétodos do view.ts de um componente base faltam na subclasseUm componente base declarado no mesmo arquivo view.tree perde seu comportamentoOs estilos vazam entre uma subview e o componente dentro delaUm seletor sobre um atributo false nunca casaUm número de estilo não muda nadaDois filhos de uma view de rolagem ficam um sobre o outrominimal_height não tem efeito visívelUm componente embutido empurra a página para os ladosCSS de terceiros não estiliza meu componenteClicar num link para a página atual limpa a URLMeu manipulador de input roda a cada renderizaçãoO erro lançado pelo meu setter de value nunca apareceUma ligação de manipulador com chave é reportada como faltanteO bundle contém um módulo que eu nunca usoPróximo
Type to search the documentation.