Привет, я пытаюсь использовать Redux с угловой.
но у меня появляется это сообщение об ошибке при попытке запустить мое угловое приложение:
ОШИБКА в node_modules/@angular-redux/store/lib/src/components/ng-redux.d.ts (10,31): ошибка TS2420: класс NgRedux неправильно реализует интерфейс ObservableStore.
Типы имущества «рассылка» несовместимы.
Тип «Отправка» не может быть назначен типу «Отправка».
Тип 'RootState' нельзя назначить типу 'AnyAction'.
node_modules/@angular-redux/store/lib/src/components/ng-redux.d.ts (37,33): ошибка TS2344: тип 'RootState' не удовлетворяет ограничению 'Action'.
node_modules/@angular-redux/store/lib/src/components/root-store.d.ts (18,24): ошибка TS2344: тип 'RootState' не удовлетворяет ограничению 'Action'.
node_modules / redux-observable / index.d.ts (32,56): ошибка TS2344: тип 'S' не удовлетворяет ограничению 'Dispatch'.
мой редуктор:
export default function reducer(state= {
persones: [],
selectedPersone: {},
}, action) {
let newState;
switch (action.type) {
case 'GET_PERSONNES':
newState = { ...state, persones: action.payload };
break;
case 'SELECT_PERSONNE':
newState = { ...state, selectedPersone: action.payload };
break;
case 'POST_PERSONNES':
newState = { ...state, selectedPersone: action.payload };
break;
case 'PUT_PERSONNES':
newState = { ...state, selectedPersone: {} };
break;
default:
newState = state;
break;
}
return newState;
}
мой индекс редуктора:
import { combineReducers } from 'redux';
import personnes from './personnes';
export default combineReducers({
personnes,
} as any);
и мой магазин:
import { createStore, applyMiddleware, Store } from 'redux';
import logger from 'redux-logger';
import { createEpicMiddleware } from 'redux-observable';
import { Observable } from 'rxjs';
import reducers from './reducers';
import 'rxjs';
const pingEpic = action$ =>
action$.ofType('HTTP_GET')
.debounceTime(500)
.switchMap(action =>
Observable.ajax.get(action.payload.url)
.map((a:any) => {
console.log(a);
return { type: action.payload.action, payload: a.response };
})
);
const post = action$ =>
action$.ofType('HTTP_POST')
.debounceTime(500)
.switchMap(action =>
Observable.ajax.post(
action.payload.url,
action.payload.object,
)
.map((a) => {
console.log(a);
return { type: action.payload.action, payload: a.response };
})
);
const put = action$ =>
action$.ofType('HTTP_PUT')
.debounceTime(500)
.switchMap(action =>
Observable.ajax.put(
action.payload.url,
action.payload.object,
)
.map((a) => {
console.log(a);
return { type: action.payload.action, payload: a.response };
})
);
const epicMiddleware = createEpicMiddleware(pingEpic);
const postMidelWare = createEpicMiddleware(post);
const putMidelWare = createEpicMiddleware(put);
export const middleware = applyMiddleware(logger, epicMiddleware, postMidelWare, putMidelWare);
export const store: Store<IAppState> = createStore(reducers, middleware);
Вы можете мне помочь?
спасибо тебе :)