У меня есть следующий компонент контейнераRedux действия отправки из контейнера компонента
import { connect } from "react-redux";
import LoginComponent from "./Login";
import React from "react";
export class LoginContainerComponent extends React.Component {
constructor(props) {
super(props)
}
login(username, password) {
//Perform actual login here
this.props.onLoginClick();
}
render() {
return (<LoginComponent onLoginClick = {this.login} />);
};
}
const mapStateToProps = function (state) {
return {
currentState: 'Logged Out'
}
};
const mapDispatchToProps = function (dispatch) {
return {
onLoginClick:() => {
alert('login clicked');
}
}
};
export default connect(mapStateToProps, mapDispatchToProps)(LoginContainerComponent);
Как вы можете видеть в методе визуализации() я передаю вниз метод входа компонента контейнера в LoginComponent, который является презентация компонент. Идея заключается в том, что
- пользователь нажимает кнопку входа в систему на компоненте презентации
- Представления компонентов вызовов метода регистрации на компоненте Container приведенной выше.
- Контейнерный компонент выполнит вход в систему (этот метод будет подключаться к фактической базе данных и аутентифицировать его пользователя), а затем вызвать метод onLoginClick (mapDispatchToProps), переданный через метод connect(). Однако в методе входа в LoginContainerComponent, когда я пытаюсь получить доступ к this.props.onLoginClick, this.props возвращает null. Я делаю что-то неправильно здесь.