'合成プロパティ@panelStateが見つかりました。アプリケーションに「BrowserAnimationsModule」または「NoopAnimationsModule」のいずれかを含めてください。


148

Angular-seedを使用してAngular 4プロジェクトをアップグレードしたところ、エラーが発生しました

合成プロパティ@panelStateが見つかりました。アプリケーションに「BrowserAnimationsModule」または「NoopAnimationsModule」のいずれかを含めてください。

エラーのスクリーンショット

どうすれば修正できますか?エラーメッセージは正確に何を教えてくれますか?


回答:


227

@angular/animationsパッケージがインストールされていることを確認します(例:を実行してnpm install @angular/animations)。次に、あなたのapp.module.ts

import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

@NgModule({
  ...,
  imports: [
    ...,
    BrowserAnimationsModule
  ],
  ...
})

PCにインストールされているかどうかを確認するにはどうすればよいですか?
Mrワールドワイド

2
npm list --depth=0プロジェクトにインストールされているパッケージのリスト
Ploppy

1
すでにインストールされている場合、期待される結果は何ですか?:私はこれらの2見ることができます├── @angular/platform-browser@4.3.5 ├── @angular/platform-browser-dynamic@4.3.5
氏の世界の広い

7
アニメーション用のすべてのパッケージをインストールし、AppBrowserに「BrowserAnimationsModule」もインポートしました。しかし、それでもエラーが発生しています。
crossRT 2018年

1
@crossRT別のファイルで作成したアニメーションもインポートしましたか?
プロッピー2018年

165

このエラーメッセージは誤解を招くことがよくあります。

のインポートを忘れた可能性がありBrowserAnimationsModuleます。しかし、それは私の問題はありませんでした。誰もがそうするようBrowserAnimationsModuleに、私はroot にインポートしてAppModuleいました。

問題は、モジュールとはまったく無関係なものでした。*ngIfコンポーネントテンプレートでをアニメーション化していました @Component.animations が、コンポーネントクラスので言及するのを忘れていました

@Component({
  selector: '...',
  templateUrl: './...',
  animations: [myNgIfAnimation] // <-- Don't forget!
})

テンプレートでアニメーションを使用する場合は、そのアニメーションをコンポーネントのanimationsメタデータにリストする必要があります... 毎回


あなたは、エラーが異なっている、角度の古いバージョンを使用している必要があります:Error: The provided animation trigger "myAnimation" has not been registered!
Ploppy

2
もちろんです。しかし、その間、私が以前の
ワード

1
また、誤解を招くようなエラーが発生しました(Angle 7.1を使用)
Andi-lo

1
私はAngular 8.0.0を使用していますが、その例外が発生しますが、コンポーネントにアニメーションを定義することで、すべてを修正しました。
Alireza

1
@Alirezaと同じように、Angular 8.0でも同じエラーが発生しました。コンポーネントに含まれるアニメーションが機能します。
trungk18

19

を使用しようとしたときに、同様の問題に遭遇しましたBrowserAnimationsModule。次の手順で問題が解決しました:

  1. node_modules dirを削除します
  2. を使用してパッケージキャッシュをクリアする npm cache clean
  3. ここにリストされているこれらの2つのコマンドのいずれかを実行して、既存のパッケージを更新します。

次のような404エラーが発生した場合

http://.../node_modules/@angular/platform-browser/bundles/platform-browser.umd.js/animations

system.config.jsに次のエントリを追加mapします。

'@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このgithubの問題の解決策提供しました。


2
この情報をありがとう...私はこれがAngularの新しいリリースであることを感謝しますが、問題を回避するための終わりのない闘いのように感じ、これらのような回避策を偶然見つけました。非常にユーザーフレンドリーではありません。
Mike Gledhill 2017年

@MikeGledhillうん、彼らは確かに過去1年間で物事を簡単にアップグレードできるようにすることに完全に夢中になっています。それは悲惨な経験でした。
ジャクソンブレイ

今日見つけたように、この問題は、プロジェクトが角度のあるクイックスタートシードに基づいている場合にのみ発生します。新しいAngular
CLI

6

これをインストールするだけで

npm install @angular/animations@latest --save  

そしてインポート

import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; 

あなたのapp.module.tsファイルに。


-1; これは主に、数か月前に投稿された承認済みの回答を複製するだけですがBrowserAnimationsModule@NgModuleデコレータに渡すステップを逃しています。それはですまた、事実上同一vikvincerの答え以前の数時間を掲載しました。
Mark Amery 2017

4
それは誰かの答えの複製ではありません。私の答えは私がしたことです。@NgModuleデコレータは正しいdefです。事実上同一であるということは、男の決定的な答えになります。フラグを立てる必要はありませんでした。
SamYah


2

私の問題は、私の@ angular / platform-b​​rowserがバージョン2.3.1にあったことでした。

npm install @angular/platform-browser@latest --save

4.4.6にアップグレードするとトリックが行われ、node_modules / @ angular / platform-b​​rowserの下に/ animationsフォルダーが追加されました


そして、それは私のAngularプロジェクト全体を4.4.6にアップグレードすることにもなりました
TanelJõeäär2017年

2

アニメーションモジュールをインストールしたら、アプリフォルダー内にアニメーションファイルを作成します。

router.animation.ts

import { animate, state, style, transition, trigger } from '@angular/animations';
    export function routerTransition() {
        return slideToTop();
    }

    export function slideToRight() {
        return trigger('routerTransition', [
            state('void', style({})),
            state('*', style({})),
            transition(':enter', [
                style({ transform: 'translateX(-100%)' }),
                animate('0.5s ease-in-out', style({ transform: 'translateX(0%)' }))
            ]),
            transition(':leave', [
                style({ transform: 'translateX(0%)' }),
                animate('0.5s ease-in-out', style({ transform: 'translateX(100%)' }))
            ])
        ]);
    }

    export function slideToLeft() {
        return trigger('routerTransition', [
            state('void', style({})),
            state('*', style({})),
            transition(':enter', [
                style({ transform: 'translateX(100%)' }),
                animate('0.5s ease-in-out', style({ transform: 'translateX(0%)' }))
            ]),
            transition(':leave', [
                style({ transform: 'translateX(0%)' }),
                animate('0.5s ease-in-out', style({ transform: 'translateX(-100%)' }))
            ])
        ]);
    }

    export function slideToBottom() {
        return trigger('routerTransition', [
            state('void', style({})),
            state('*', style({})),
            transition(':enter', [
                style({ transform: 'translateY(-100%)' }),
                animate('0.5s ease-in-out', style({ transform: 'translateY(0%)' }))
            ]),
            transition(':leave', [
                style({ transform: 'translateY(0%)' }),
                animate('0.5s ease-in-out', style({ transform: 'translateY(100%)' }))
            ])
        ]);
    }

    export function slideToTop() {
        return trigger('routerTransition', [
            state('void', style({})),
            state('*', style({})),
            transition(':enter', [
                style({ transform: 'translateY(100%)' }),
                animate('0.5s ease-in-out', style({ transform: 'translateY(0%)' }))
            ]),
            transition(':leave', [
                style({ transform: 'translateY(0%)' }),
                animate('0.5s ease-in-out', style({ transform: 'translateY(-100%)' }))
            ])
        ]);
    }

次に、このアニメーションファイルを任意のコンポーネントにインポートします。

あなたのcomponent.tsファイルで

import { routerTransition } from '../../router.animations';

@Component({
  selector: 'app-test',
  templateUrl: './test.component.html',
  styleUrls: ['./test.component.scss'],
  animations: [routerTransition()]
})

app.module.tsにアニメーションをインポートすることを忘れないでください

import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

2

アニメーションは特定のコンポーネントに適用する必要があります。

EX:他のコンポーネントでアニメーションディレクティブを使用し、別のコンポーネントで提供されています。

CompA --- @Component({



アニメーション:[アニメーション]})CompA --- @Component({



アニメーション:[アニメーション] <===これは中古コンポーネントで提供される必要があります})


1

私にとっては、アニメーション名を角括弧の中に入れたからです。

<div [@animation]></div>

しかし、ブラケットを削除した後、すべて正常に動作しました(Angular 9.0.1)。

<div @animation></div>

0

エラーが発生しました:

Found the synthetic property @collapse. Please include either "BrowserAnimationsModule" or "NoopAnimationsModule" in your application.

私はプロッピーによって受け入れられた答えに従い、それが私の問題を解決しました。

手順は次のとおりです。

1.
    import { trigger, state, style, transition, animate } from '@angular/animations';
    Or 
    import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

2. Define the same in the import array in the root module.

エラーを解決します。ハッピーコーディング!!


-3

これを試して

npm install @ angular / animations @ latest --save

'@ angular / platform-b​​rowser / animations'から{BrowserAnimationsModule}をインポートします。

これは私にとってはうまくいきます。


-1; これは主に、数か月前に投稿された承認済みの回答を複製するだけですがBrowserAnimationsModule@NgModuleデコレータに渡すステップを逃しています。
Mark Amery 2017

-3

単に.. import {BrowserAnimationsModule} from '@ angular / platform-b​​rowser / animations';を追加します。

インポート:[.. BrowserAnimationsModule

]、

app.module.tsファイル内。

.. npm install @ angular / animations @ latest --saveがインストールされていることを確認してください


既に他の多数の回答に含まれているコンテンツを複製する場合は-1。
Mark Amery 2017

-3

angularJS 4の更新:

エラー:(SystemJS)XHRエラー(404が見つかりません)http:// localhost:3000/node_modules/@angular/platform-b​​rowser/bundles/platform-b​​rowser.umd.js/animationsの読み込み

解決:

**cli:** (command/terminal)
npm install @angular/animations@latest --save

**systemjs.config.js** (edit file)
'@angular/animations': 'npm:@angular/animations/bundles/animations.umd.js',
'@angular/animations/browser': 'npm:@angular/animations/bundles/animations-browser.umd.js',
'@angular/platform-browser/animations': 'npm:@angular/platform-browser/bundles/platform-browser-animations.umd.js',

**app.module.ts** (edit file)
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
@NgModule({
  imports:      [ BrowserModule,BrowserAnimationsModule ],
...

2
-1; 「angularJS 4」は何かではなく、説明文だけではなく、エラーメッセージと読みにくいコードブロックを提供するだけなので、ここで何を表現しようとしているのかは明確ではありません。
Mark Amery 2017

-3
--
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
---

@NgModule({
  declarations: [   --   ],
  imports: [BrowserAnimationsModule],
  providers: [],
  bootstrap: []
})

2
コードの説明を入力してください。それ自体でコードを投稿しても、OP以外の人を助けたり、OPが機能する(または機能しない)理由を理解していません。
jhpratt 2017

このコードスニペットは問題を解決する可能性がありますが、なぜまたはどのように質問に答えるかは説明していません。あなたのコードの説明を含めてください、それはあなたの投稿の質を改善するのに本当に役立つからです。あなたが将来の読者のための質問に答えていることを覚えておいてください、そしてそれらの人々はあなたのコード提案の理由を知らないかもしれません
Balagurunathan Marimuthu

-1; これは、受け入れられた回答のコンテンツを複製するだけです。
Mark Amery 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.