Я хотел бы создать базовый компонент Redux с его собственным состоянием и свойствами.Когда я расширяю его универсальным способом, я хочу объединить свойства расширенного объекта и состояние также с основанием.Этот компонент должен быть связан с моим магазином Redux.
Я создал фрагмент кода, который работает для свойств, но не для состояний.
BaseComponent:
import * as React from "react";
import { connect } from "react-redux";
import { IRootState } from "../../../Store/ApplicationStore";
interface IComponentStoreProps {
storeProp?: boolean;
}
interface IComponentOwnState {
myState?: string | number;
}
class BaseComponent<Props, State> extends React.Component<Props & IComponentStoreProps, State & IComponentOwnState> {
constructor(props: Props & IComponentStoreProps) {
super(props);
}
}
export const BaseComponentConnected = <Props, State>() => {
return connect(
(state: IRootState): any => {
return {
storeProp: state.global.tfsRelatedData.isLoaded
};
}
)(BaseComponent as new () => BaseComponent<Props & IComponentStoreProps, State & IComponentOwnState>);
};
ExtendedComponent:
interface IComponentOwnState {
fieldValue: string;
}
interface IComponentStoreProps {
isLoaded: boolean;
}
class ExtendedComponent extends BaseComponentConnected<IComponentStoreProps, IComponentOwnState>() {
//this.props.isLoaded -> exists
//this.props.storeProp -> exists
//this.state -> undefined
}
Как создать объединенный объект состояния в унаследованных классах?
В случае, если я экспортирую неподключенный компонент, все работает нормально, и я хотел бы сделатьто же самое с моим подключенным.