Как получить ссылку на магазин в реаги / редуксе?

В моем компоненте responsejs-universal я написал это:

const mapStateToProps = (store) => {
  return {
    cars: store
  }
}

export default connect(mapStateToProps)(SearchForm)

В том же компоненте я хотел бы отправить действие как:

 store.dispatch({type: 'SHOWDETAIL', data: 'hi'});

Когда это запускается, я получаю:

Uncaught TypeError: _create2.default.dispatch is not a function

Можно ли как-то получить ссылку на магазин в моем компоненте, чтобы я мог отправить действие?

2 ответа

Решение

connect позвоню mapStateToProps с государством в качестве аргумента, а не магазина.

Кажется, что в вашем случае вам не нужна ссылка на магазин, и достаточно использовать connect для отправки карты на реквизит.

const mapStateToProps = (store) => {
  return {
    cars: store
  }
}

const mapDispatchToProps = dispatch => {
  return {
    action : () => dispatch({
      type : 'ACTION_NAME'
    })
  }
}
export default connect(mapStateToProps, mapDispatchToProps)(SearchForm)

Если вы действительно хотите магазин, вы должны просто экспортировать его из того места, где вы его создали, и импортировать его туда, где он вам нужен, это не является целью connect пройти магазин.

Вы получаете не ссылку на объект магазина, а на состояние внутри магазина. Второй параметр функции подключения - это mapDispatchToProps. Это дает вам доступ к функции отправки.

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