angular - 'Nájdená syntetická vlastnosť @panelState. Prosím, zahrňte do svojej aplikácie buď "BrowserAnimationsModule" alebo "NoopAnimationsModule".'
Vylepšil som projekt Angular 4 pomocou angular-seed a teraz dostávam chybu
Nájdená syntetická vlastnosť @panelState. Do svojej aplikácie prosím zahrňte buď „BrowserAnimationsModule“ alebo „NoopAnimationsModule“.
Ako to môžem opraviť? Čo presne mi hovorí chybové hlásenie?
Odpoveď č. 1
Uistite sa, že balík @angular/animations je nainštalovaný (napr. spustením npm install @angular/animations). Potom vo vašom súbore app.module.ts
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
@NgModule({
...,
imports: [
...,
BrowserAnimationsModule
],
...
})
Odpoveď č. 2
Táto chybová správa je často zavádzajúca.
Možno ste zabudli importovať BrowserAnimationsModule. Ale to nebol môj problém. Importoval som BrowserAnimationsModule v hlavnom AppModule, ako by mal robiť každý.
Problém bol niečo úplne nesúvisiace s modulom. Animoval som *ngIf v šablóne komponentu, ale zabudol som to spomenúť v @Component.animations pre triedu komponentu.
@Component({
selector: '...',
templateUrl: './...',
animations: [myNgIfAnimation] // <-- Don't forget!
})
Ak v šablóne použijete animáciu, musíte túto animáciu uviesť aj v metadátach animations komponentu ... pri každom použití.
Odpoveď č. 3
Ak niekto hľadá riešenie pre toto pri použití samostatnej komponenty, pridajte toto do vášho súboru main.ts
import { importProvidersFrom } from '@angular/core';
bootstrapApplication(AppComponent,{
providers:[importProvidersFrom([BrowserAnimationsModule])]
});
alebo použiť
import { provideAnimations } from '@angular/platform-browser/animations';
bootstrapApplication(AppComponent, {
providers: [
provideAnimations()
]
})
Zdroj: Ako pridať BrowserAnimationsModule alebo NoopAnimationsModule do nezávislej komponenty?
Odpoveď č. 4
Narazil som na podobné problémy, keď som sa pokúsil použiť BrowserAnimationsModule. Nasledujúce kroky vyriešili môj problém:
- Odstráňte adresár node_modules
- Vyčistite svoju vyrovnávaciu pamäť balíčkov pomocou
npm cache clean - Spustite jeden z týchto dvoch príkazov uvedených tu na aktualizáciu vašich existujúcich balíkov
Ak zažijete chyby 404 ako
http://.../node_modules/@angular/platform-browser/bundles/platform-browser.umd.js/animations
pridajte nasledujúce položky do map vo vašom system.config.js:
'@angular/animations': 'node_modules/@angular/animations/bundles/animations.umd.min.js',
'@angular/animations/browser':'node_modules/@angular/animations/bundles/animations-browser.umd.js',
'@angular/platform-browser/animations': 'node_modules/@angular/platform-browser/bundles/platform-browser-animations.umd.js'
naveedahmed1 poskytol riešenie na tento problém na GitHube.
