Использование mapDispatchToProps в компоненте реакции

У меня проблема в том, что я не могу найти способ добавить mapDispatchToProps в свой компонент реакции. так как это класс.

Это класс, в котором у меня возникла проблема, я получаю сообщение об ошибке: findPosts не определен.

const mapDispatchToProps = {
  findPosts: searchPosts
};

class SearchMenu extends React.Component {
  state = {
    anchorEl: null,
    value: ''
  };

  handleChangeEvent = event => {
    this.setState({value: event.target.value,});
  };

  handleClick = event => {
    this.setState({ anchorEl: event.currentTarget });
  };

  handleClose = () => {
    this.setState({ anchorEl: null });
  };

  render() {
    const { anchorEl } = this.state;

    return (
      <Fragment>
        <IconButton onClick = {this.handleClick}>
          <SearchIcon color = "secondary" />
        </IconButton>
        <Menu
          anchorEl = {anchorEl}
          open = {Boolean(anchorEl)}
          onClose = {this.handleClose}
        >
          <MenuItem>
            <CategorySelector />
          </MenuItem>
          <MenuItem>
            <TextField
              value = {this.state.value}
              onChange = {this.handleChangeEvent}
            />
            <IconButton onClick = {() => { findPosts(this.state.value); }}>
              <SearchIcon color = "secondary" />
            </IconButton>
          </MenuItem>
        </Menu>
      </Fragment>
    );
  }
}

export default connect(null,mapDispatchToProps)(SearchMenu);

В других компонентах мне удалось это сделать, потому что я мог использовать что-то вроде этого:

const mapDispatchToProps = {
  getPosts: fetchPosts
};

const Reactions = ({ getPosts}) => (
<LinkButton onClick = {() => {getPosts("messages");}}>
  Back to posts
</LinkButton>
);

export default connect(null, mapDispatchToProps)(Reactions);

Но поскольку мне нужен this.setState в фрагменте кода, я не могу изменить его, как во втором примере.

Вам нужно вызвать его с помощью this.props.findPosts, поскольку он не импортируется как параметр функции.

Gbacc 29.10.2018 15:03
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
1
31
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В классе вы должны использовать this.props.findPosts(this.state.value)

Другие вопросы по теме