Почему мой эффект ngrx преобразует строковый параметр в массив?

#angular #ngrx #ngrx-store #ngrx-effects

#angular #ngrx #ngrx-store #ngrx-эффекты

Вопрос:

Экшен

У меня есть следующее действие:

 export const searchTM = createAction(
    IocActionTypes.SearchTM,
    props<{tm: string}>()
);
  

Компонент

У меня есть следующий код в одном из моих компонентов:

 this.store.dispatch(searchTM(value));  
  

где value находится строка 03F

Эффекты

В моем файле эффектов ngrx у меня есть следующее:

 searchTM$ = createEffect(() => this.actions$.pipe(
    ofType(iocActions.searchTM),
    mergeMap(val => this.iocService.getGridRowByTM(val.tm)
      .pipe(
        map(rowdataraw => iocActions.searchTMFound({rowdataraw})),
        catchError(() => {
            return EMPTY;
        })
      )
      )
    )
  );
  

но когда я устанавливаю точку отладки в переменной mergeMap val , я вижу, что это выглядит следующим образом:

введите описание изображения здесь

Ответ №1:

Проблема заключалась в том, что я передавал параметр в неправильном формате.

Я использовал:

 this.store.dispatch(searchTM(value));  
  

где я должен был использовать:

 this.store.dispatch(searchTM({tm: value}));
  

Комментарии:

1. Спасибо, у меня была такая же проблема