我有以下的容器組件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渲染()方法,它是一種演示文稿看零件。這個想法是
- 用戶點擊登錄呈現組件
- 呈現組件調用登錄上面給出的容器組件上的方法上按鈕。
- 容器組件將執行登錄(此方法將連接到實際的數據庫並對用戶進行身份驗證),然後調用通過connect()方法傳入的onLoginClick方法(mapDispatchToProps)。但是,當我嘗試訪問this.props.onLoginClick時,在LoginContainerComponent的登錄方法中,this.props返回null。我在這裏做錯了嗎?