smalljs$molHledat⌘ KDokumentacePlaygroundPorovnáníEkosystémO projektuCS
Řešení problémůGetting StartedÚvodMyšlenkový modelZačínámeZ TypeScriptu do view.treeStruktura projektuNástrojeEssentialsInstalacePohledyStav a reaktivitaSměrováníVykreslováníTestováníNasazeníŘešení problémůDataNačítání datDatová schémataGiper BazaMoreVýkladní skříňZ React, Vue a SvelteKuchařkaAdvancedPluginyMetadata moduluOfflineGhost pohledyAboutČasté dotazyTýmVydáníAPI$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

Řešení problémů

Každá položka na této stránce má stejný tvar: build je zelený, audit čistý, konzole mlčí a obrazovka je prázdná nebo ukazuje něco jiného, než jste zamýšleli. Překladač tyhle chyby nevidí, protože každá z nich je platný program, který jen popisuje jinou komponentu. Najděte nadpis, který zní jako to, co vidíte; pod ním je příčina a náprava.

Přepsání vlastnosti nic nedělá a žádná chyba se nehlásí

Název ve view.tree a název metody ve třídě se liší, nejčastěji velikostí písmen: exchange_form ve stromě, exchangeForm ve třídě. To jsou dvě vlastnosti. Tu ze třídy nikdo nevolá, ta ze stromu zůstane u výchozí hodnoty a nic to nehlásí.Názvy jsou všude snake_case a musí se shodovat písmeno po písmenu. Po úpravě .view.ts zkontrolujte, že každé přepsání pořád pojmenovává existující vlastnost; vygenerovaný -view.tree/*.view.tree.d.ts vedle stromu je ten seznam k porovnání.

Potřebuji placeholder, zakázání nebo typ u vstupu

Tohle jsou vlastnosti $mol_string: hint pro placeholder, enabled pro zakázaný stav, type pro typ vstupu. Nastavte je tam, kde se vstup používá:1<= Password $mol_string2 hint \Password3 type \password4 enabled <= can_edit true5 value? <=> password? \Kteroukoli jinou vlastnost kterékoli jiné komponenty najdete stejně: otevřete její .view.tree, jak ukazuje Jak číst zdrojové kódy.attr * slouží pro skutečné DOM atributy, které komponenta ještě nemodeluje, a má vlastní past: blok bez ^ na prvním řádku nahradí celý slovník atributů základu, takže $mol_button napsaný takhle přijde o disabled, role a tabindex. Začněte blok znakem ^, ať zdědíte, a pak přidejte své klíče:1attr *2 ^3 data_kind \primary

Slovo se vykreslí po písmenech

Řetězec se dostal tam, kde se čeká seznam, a byl rozložen znak po znaku. Řetězce začínají \, seznamy /. Obvyklý případ je sub, což je seznam:1sub / <= label \Hello

Obrazovka je prázdná, testy zelené

Přepsání vypadlo z .view.ts. Strom dává každé vlastnosti výchozí hodnotu, takže když třída přestane předefinovávat rows(), TypeScript je spokojený a seznam se vykreslí prázdný. Testy, které kontrolují jen model, zůstanou zelené, protože s modelem je všechno v pořádku.Pro každé přepsání, na kterém obrazovka závisí, napište test, který čte to, co vidí uživatel: rows(), sub(), title() podpohledů nebo DOM. Testování ukazuje obojí.

Data se nikdy nenačtou, komponenta uvízla ve stavu načítání

Metoda @ $mol_mem vrátila jako hodnotu příslib: fetch( uri ).then( ... ), metodu async nebo výsledek $mol_wire_async( this ).load(). Příslib v buňce se pro všechny čte jako „ještě počítám“ a jakmile se vyřeší, buňka se přepočítá a vyrobí čerstvý příslib. Síť funguje; pohled výsledek nikdy neuvidí.Správný tvar je synchronní: zavolejte this.$.$mol_fetch.json( uri ) uvnitř buňky a vraťte rozparsovanou hodnotu. Vlákno se pozastaví, dokud odpověď nedorazí, a pak buňku spustí znovu, takže se příslib ve vašem kódu vůbec neobjeví. Tam, kde se asynchronní práce musí odehrát jinde, odložte její výsledek do samostatné stavové buňky a efekt ať vrací příznak nebo klíč, nikdy příslib.Druhá příčina je spolknutá chyba: try/catch uvnitř buňky, který chytí pozastavení spolu se skutečnými selháními. Vše, co je Promise, vyhoďte dál, nebo použijte $mol_fail_catch, které tuto kontrolu udělá za vás.

Cyklické přihlášení

Metoda @ $mol_mem zapsala do jiné buňky nebo provedla vedlejší efekt, který nakonec zneplatnil něco, co předtím přečetla. Výpočty jen čtou a vracejí; zápisy, síť, časovače a DOM patří do obslužných rutin @ $mol_action. Druhý zdroj téhož hlášení je vazba <=> na potomka v kombinaci s metodou ve třídě, která deleguje na téhož potomka — popsáno níže.
Upravit tuto stránku na GitHubuBylo to užitečné?AnoNePředchozíNasazeníDalšíNačítání dat
Na této stráncePřepsání vlastnosti nic nedělá a žádná chyba se nehlásíPotřebuji placeholder, zakázání nebo typ u vstupuSlovo se vykreslí po písmenechObrazovka je prázdná, testy zelenéData se nikdy nenačtou, komponenta uvízla ve stavu načítáníCyklické přihlášeníMaximum call stack — přetečení zásobníku voláníHodnotu psanou velkým písmenem nelze přepsat z TypeScriptuKaždý řádek vnořeného seznamu ukazuje tutéž položkuZměnil jsem třídu podpohledu a jeho obsah zmizelMetody z view.ts základní komponenty chybí v podtříděZákladní komponenta deklarovaná ve stejném souboru view.tree ztrácí své chováníStyly prosakují mezi podpohledem a komponentou uvnitř nějSelektor na atributu s hodnotou false nikdy nesedíČíslo ve stylu nic neměníDva potomci posuvného pohledu leží přes sebeminimal_height nemá viditelný efektVložená komponenta roztlačuje stránku do stranCizí CSS moji komponentu nestylujeKliknutí na odkaz na aktuální stránku vymaže URLMoje obslužná rutina vstupu se spouští při každém vykresleníChyba vyhozená ze setteru hodnoty se nikdy nezobrazíKlíčovaná vazba obslužné rutiny je hlášena jako chybějícíBundl obsahuje modul, který nikdy nepoužívámDále
Type to search the documentation.