Я настраиваю действительно простое новое состояние хранилища Redux.
Я "клонировал" хранилище Redux, которое я создал ранее, и упростил его.Сначала я попробовал только в одном состоянии: редуктор, селектор и действие, затем я попытался создать дерево (как в моем старом проекте), но ничего не изменилось.Я проверил package.json и вижу, что у меня та же версия Redux, React, ReactRedux, Typescript, ecc ....
import { Record } from "immutable";
export enum officeLocations {
cityOne = "CITYONE",
cityTwo = "CITYTWO",
none = "NONE",
cityThree = "CITYTHREE",
cityFour = "CITYFOUR"
}
export interface ILocationInfo {
location: officeLocations;
}
const LocationInfoRecord = Record({
location: officeLocations.none
});
export class LocationInfo extends LocationInfoRecord implements ILocationInfo {
public location: officeLocations;
constructor(props?: ILocationInfo) {
// props ? super(props) : super(); <-- in older project I use this line instead of if-else... but here it tell me I cannot invoke super multiple times...
if (props) {super(props);}
else {super();}
this.location = props ? props.location : officeLocations.none; // <- In my older code I don't need this line, for some reason it give me an error that location is not instantiated if I don't put this line
}
public with(values: Partial<ILocationInfo>) {
return this.merge(values);
}
}
Я ожидаю, что это работает без проблем ... ноTypescript не доставляет мне никаких проблем и не компилирует, но запускает его при «super ()», говоря «Ошибка: невозможно установить неизменную запись».
**
ОБНОВЛЕНИЕ:
**
Сегодня, ничего не меняя, он выдаст мне эту ошибку:
Тип '(location: LocationInfo, action: IAction) => Map'нельзя назначить типу «Редуктор, любой>».Типы параметров LocationInfo и state несовместимы.Тип 'Карта |undefined 'нельзя назначить типу' LocationInfo '.Тип 'undefined' нельзя назначить типу 'LocationInfo'
И теперь он дает мне эту ошибку даже с моим исходным кодом, который объясняется с комментариями к коду.
эта ошибка выдается, когда я вызываю «ОбъединениеReducers».
const settingsReducer = combineReducers({
location: locationReducer,
other: otherReducer
});