Ошибка: «FunctionComponent <IProps>» не может быть назначен параметру типа ComponentType> - PullRequest
0 голосов
/ 03 октября 2019

Я пытаюсь интегрировать машинописный текст с моим существующим кодом (act-redux), пока я сталкиваюсь с ошибкой «Аргумент типа 'FunctionComponent' не может быть назначен параметру типа 'ComponentType, IProps >>'."

interface IProps{
  dispatch : Dispatch<AppActions>;
  theme: string
}

const Header: React.FC<IProps> = ({ dispatch, theme }):any => {
  const classes = useStyles();
  const [term, setTerm] = React.useState('');

  const searchFunc = () => {
    Router.push(`/search?q=${term}`);
  };

  return (
    <>
      <CssBaseline />
      <AppBar position="fixed">
        <Toolbar className={classes.appBarContent}>
          <img className={classes.logo} alt="Home" src="https://img1a.flixcart.com/www/linchpin/fk-cp-zion/img/flipkart-plus_4ee2f9.png" />
          <div className={classes.search}>
            <InputBase
              placeholder="Search…"
              classes={{
                input: classes.inputInput,
              }}
              value={term}
              onChange={(event) => { setTerm(event.target.value); }}
              inputProps={{ 'aria-label': 'search' }}
            />
            <IconButton
              className={classes.searchButton}
              aria-label="Search"
              onClick={() => searchFunc()}
            >
              <SearchIcon />
            </IconButton>
          </div>
          <IconButton
            className={classes.themeButton}
            onClick={() => dispatch(appActions.changeTheme(theme === 'light' ? 'dark' : 'light'))}
          >
            <HighlightIcon />
          </IconButton>
        </Toolbar>
      </AppBar>
      <Toolbar />
    </>
  );
};

Header.propTypes = {
  dispatch: PropTypes.func.isRequired,
};

const mapStateToProps = (state:AppState) => ({
  theme: state.app.theme,
});

export default connect(mapStateToProps)(Header);

Я получаю сообщение об ошибке: Аргумент типа 'FunctionComponent<IProps>' не может быть назначен параметру типа 'ComponentType<Matching<{ theme: String; } & DispatchProp<AnyAction>, IProps>>'. Тип 'FunctionComponent<IProps>' нельзя назначить типу 'FunctionComponent<Matching<{ theme: String; } & DispatchProp<AnyAction>, IProps>>'. Типы параметров «реквизит» и «реквизит» несовместимы. Тип 'PropsWithChildren<Matching<{ theme: String; } & DispatchProp<AnyAction>, IProps>>' нельзя назначить типу 'PropsWithChildren<IProps>'. Тип 'PropsWithChildren<Matching<{ theme: String; } & DispatchProp<AnyAction>, IProps>>' нельзя назначить типу 'IProps'. Типы свойств 'тема' несовместимы. Тип «Строка» нельзя назначить типу «строка». 'string' является примитивом, но 'String' является объектом-оболочкой. Предпочитаю использовать 'string', когда это возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...