Когда я включаю swal
создателей действий в mapDispatchToProps
как таковые
function mapDispatchToProps(dispatch) {
return {
getAnimal: (_id) => dispatch(getAnimal(_id)),
...swal
}
}
this.props.getAnimal()
работает правильно, отправляя действие при вызове, но this.props.showAlert()
, который предоставляется ...swal
, делаетне отправлять действие при вызове!
Однако, если бы мы заменили оператор распространения ...swal
, чтобы получить:
function mapDispatchToProps(dispatch) {
return {
getAnimal: (_id) => dispatch(getAnimal(_id)),
showAlert: () => dispatch(swal.showAlert()),
hideAlert: () => dispatch(swal.hideAlert()),
}
}
, теперь мы получаем всплывающее диалоговое окно с предупреждением (предназначеноповедение), но в окне предупреждения не отображается текст, и консоль JS отображает ошибку
SweetAlert2: неизвестный параметр "show" (sweetalert2.js: 122)
Вопрос: Как правильно использовать ...swal
в mapDispachToProps
, поэтому вам не нужно индивидуально выбирать создателя действия, которому вы хотите сопоставить отправку?
ПодробнееПолный код
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { withRouter } from 'react-router';
import { swal } from 'react-redux-sweetalert2';
import { getAnimal } from '../../actions';
class Animal extends Component {
...
function mapStateToProps(state) {
...
}
function mapDispatchToProps(dispatch) {
return {
getAnimal: (_id) => dispatch(getAnimal(_id)),
...swal
}
}
export default withRouter(connect(mapStateToProps, mapDispatchToProps)(Animal))