Ich versuche, Dispatch von einer Reaktionskomponente aufzurufen, die mit Redux verbunden ist. Aus irgendeinem Grund kann ich this.props.dispatch
von dieser Komponente nicht aufrufen. Aber die showPopup
Aktion funktioniert gut in der Komponente?Versand ist nicht in der verbundenen Komponente verfügbar
Reading the docs es heißt, dass, wenn Sie die connect()
haben, sollten Sie this.props.dispatch
aufrufen können. Alles, was ich hier vermisse?
import React, { Component } from 'react';
import { connect } from 'react-redux';
// Actions
import { showPopup } from '../../../actions';
class Channels extends Component {
render() {
console.log(this.props.dispatch); // <- undefined (?)
return <div>some stuff</div>;
}
}
export default connect(null, { showPopup })(Channels);
Update 1
Nachfolgend macht es Arbeit gibt es keine Möglichkeit, dies zu verkürzen?
function mapDispatchToProps(dispatch) {
let actions = bindActionCreators({ showPopup });
return { ...actions, dispatch };
}
aktualisieren 2
export default connect(null, (dispatch) => bindActionCreators({ showPopup, dispatch }, dispatch))(Channels);
verwenden Wenn Sie es tun, wie Sie es im ersten Beispiel, so können Sie Rufen Sie einfach 'this.props.showPopup (...)' in Ihrer Komponente auf, wodurch Ihre Aktion tatsächlich erstellt und versendet wird. '...' sind irgendwelche Argumente, die Ihr Handlungsentwickler annimmt. Dies vereinfacht die Vorgänge erheblich, da Sie die Aktionen nicht manuell erstellen müssen. –
@ BalázsÉdes Ich weiß, aber ich brauche immer noch die "Versand" für eine andere Aktion;) – NealVDV
Warum schreiben Sie nicht nur eine Aktion Creator dafür? Sie können so viele davon haben, wie Sie möchten. –