Как получить ссылку на магазин в реаги / редуксе?
В моем компоненте 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. Это дает вам доступ к функции отправки.