【发布时间】:2021-01-17 17:40:36
【问题描述】:
所以我现在多次收到此错误。当尝试将特定类型对象的数组传递给来自 ngrx 效果的 ngrx 存储中的操作时。就我而言,我想将AngularFireUploadTask[] 传递给我的操作。以前我在我的项目中定义了User Products 时遇到了同样的错误。我摆脱这个问题的方法是使用 (as User) 将对象转换为有效的产品。这似乎在这里不起作用。
请帮助我理解这个问题。该错误没有提供太多信息。 这是我的行动:
export const loadUploadSuccess = createAction(
'[Upload/API] Load Upload Success',
props<{ upload: AngularFireUploadTask[] }>()
);
这是效果:
init$ = createEffect(() =>
this.actions$.pipe(
ofType(UploadActions.init),
fetch({
run: (action) => {
const uploads: AngularFireUploadTask[] = [];
action.files.forEach((file) => {
uploads.push(this.firebaseStorage.startUpload(file));
});
console.log(uploads);
return UploadActions.loadUploadSuccess({upload: uploads});
},
onError: (action, error) => {
console.error('Error', error);
return UploadActions.loadUploadFailure({ error });
},
})
)
);
为了以防万一,我将包含减速器。
on(UploadActions.loadUploadSuccess, (state, { upload }) => {
console.log('yooo', upload);
return uploadAdapter.setAll(upload as UploadEntity[], { ...state, loaded: true });
}),
当我将空数组传递给 UploadActions.loadUploadSuccess({upload: []}); 时,它工作得很好,但是当我添加实际对象时,我得到了错误。
据我了解,这是 TypeError,所以类型有问题。我尝试在实际中使用 unknown、any、unknown[] 和 any[],但没有任何帮助。
【问题讨论】:
标签: angular typescript ngrx ngrx-effects