Type check error in Class based component
praburangki opened this issue · 1 comments
praburangki commented
This might be a basic Typescript question but I'm not sure.
I have a container component that is declared like this:
class Container extends Component<any> {
// something
}
const mapStateToProps = ({ search }, { fieldType }) => ({
fieldSelected: search[fieldType],
});
const mapActionToProps = {
setSearchField: searchActions().setField,
};
export default connect(
mapStateToProps,
mapActionToProps
)(Container);
If I import it with extra props like this:
<Container options={options} fieldType={fieldType} />
It throws a type error. I've noticed that changing to this works:
connect<{}, {}, {}, {}>
When using this format:
const Container: ComponentClass = class extends Component<any>
the type error occurred here:
export default connect(
mapStateToProps,
mapActionToProps
)(Container) // <--
Feel free to close this if it is not related.
developit commented
I don't think we have a way to infer the types of mapStateToProps and mapActionToProps automatically, so you have to type them and use connect<ContainerProps, ContainerState, StoreState, InjectedProps>
.