У меня есть код, в котором я настроил хранилище в конструкторе AppModule:
export class AppModule {
constructor(ngRedux: NgRedux<IApplicationState>) {
// Tell @angular-redux/store about our rootReducer and our initial state.
// It will use this to create a redux store for us and wire up all the
// events.
ngRedux.configureStore(rootReducer, INITIAL_STATE);
}
Это довольно много, как сказано в документации, чтобы использовать его.
Теперь я пытаюсь использовать redux-state-sync с моим магазином. Тем не менее, в примере с документацией redux-state-sync приведено указание использовать createStore вместо configureStore:
import { createStore, applyMiddleware } from 'redux'
import { createStateSyncMiddleware } from 'redux-state-sync';
const config = {
// TOGGLE_TODO will not be triggered in other tabs
blacklist: ['TOGGLE_TODO'],
}
const middlewares = [
createStateSyncMiddleware(config),
];
const store = createStore(rootReducer, {}, applyMiddleware(...middlewares));
Если я пытаюсь добавить промежуточное программное обеспечение для настройки магазина:
ngRedux.configureStore(rootReducer, INITIAL_STATE, applyMiddleware(...middlewares));
Я получаю ошибку:
ОШИБКА в src / app / app.module.ts (51,56): ошибка TS2345: Аргумент типа
'StoreEnhancer <{dispatch: {}; }, {}> 'нельзя назначить параметру
типа 'Middleware <{}, any, Dispatch> []'. Тип
'StoreEnhancer <{dispatch: {}; }, {}> 'отсутствует следующее
свойства типа «Middleware <{}, any, Dispatch> []»:
pop, push, concat, join и еще 25.
Как я могу использовать синхронизацию состояний при редуксе с angular-redux?
Спасибо!
EDIT:
Я могу сделать так:
const config = {
blacklist: ['TOGGLE_TODO'],
}
const middlewares : Middleware[] = [
createStateSyncMiddleware(config),
];
ngRedux.configureStore(rootReducer, INITIAL_STATE, middlewares);
но похоже, что изменения состояния не синхронизируются с другими вкладками.