接口:
export interface IClient extends Array<IClient> {
client_name: string
}
操作:
export const addClientSuccess = createAction(
'[CLIENT] ADD_CLIENT_COMPLETE',
props<{ client_name: IClient }>()
);
减速机:
export interface ClientState {
client_name: IClient[]
}
export const clientInitialState: ClientState = {
client_name: []
}
export const clientReducer = createReducer(
clientInitialState,
on(ClientActionTypes.addClientSuccess,(state, {client_name}) => ({
...state,
client_name: [...client_name]
})
))
效果:
addClient = createEffect(() => {
return this.actions.pipe(
ofType(ClientActionTypes.addClient),
switchMap(({ client }) => {
return this.clientService.addClient(client).pipe(
map((res) => ClientActionTypes.addClientSuccess(res)),
catchError(error => {
return of(ClientActionTypes.addClientFailure({ error }))
})
);
})
);
});
使用上面的代码,我试图将数组附加到client_name中,但我输入的值被分隔为数组中的多个值,我附加了关于它如何迭代的redux存储。
例如,如果我输入了test和test,它应该打印一个'test'," testing“。
发布于 2019-09-21 17:23:30
你做错了。
Array<IClient>
。这是一个简单的字符串。export interface IClient { client_name: string; }
client_name**s**: IClient[]
export interface ClientState { client_names: IClient[] }
export const clientInitialState: ClientState = { client_names: [] }
还应正确配置export const clientReducer = createReducer( clientInitialState, on(ClientActionTypes.addClientSuccess,(state, action) => ({ ...state, client_names: [...state.client_names, action.client_name] })
addClient$ = createEffect(() => { return this.actions.pipe( ofType(ClientActionTypes.addClient), switchMap((action) => { return this.clientService.addClient(action.client_name).pipe( map((res) => ClientActionTypes.addClientSuccess({ client_name: res})), catchError(error => { return of(ClientActionTypes.addClientFailure({ error })) }) ); }) ); });
我还没有测试过这段代码,所以如果有输入错误,请使用您的智能感知来修复。
code
上使用了代码块格式,因此由于某些原因,4个空格无法正常工作。https://stackoverflow.com/questions/58038151
复制相似问题