2

向组件添加动画时,我在控制台中收到以下错误:

Reduce of empty array with no initial value

我的角度版本:2.0.0

动画代码:

animations: [
    trigger('routerTransition', [
        state('void', style({ position: 'fixed', width: '100%' })),
        state('*', style({ position: 'fixed', width: '100%' })),
        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%)' }))
        ])
    ])
]

错误:

在此处输入图像描述

4

1 回答 1

3

事实证明,我使用的是 Angular 2.1.0 版中引入的新动画别名,我按照这个示例进行操作,但没有意识到我的 Angular 版本与示例中的不同。

在挖掘调用堆栈后,我发现实际错误是:

the provided :enter is not of a supported format

如果在控制台中记录此错误会很有帮助。

升级到 Angular 2.1.0 解决了该错误。

从发行说明中摘录:

通过为常见的 void => * 和 * => void 状态更改添加 :enter 和 :leave 别名来增强 Angular 中的动画。转换 API 文档已使用这些别名进行了更新。

于 2016-12-20T09:22:26.820 回答