Skip to content

Type check error in Class based component #138

Open

Description

@praburangki

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.

Activity

  1. developit commented on Mar 1, 2019

    @developit
    Owner

    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>.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions