0
コンポーネントをmatchDispatchtoPropsに接続しようとしています。私は、これはUが呼ぶところから私のレンダリングコンポーネントがhandleButtonClickコンポーネントにアクションを接続中にエラーが発生しました
render(){
return (
<div className="LoginPage">
<div className="login-page">
<div className="form">
<form className="login-form">
<input id="username" type="username" placeholder="username"/>
<input id="password" type="password" placeholder="password"/>
<p className="message">Not registered? <a href="#">Request Username and Password</a></p>
</form>
<button onClick={this.handleLoginButtonClick.bind(this)}>login</button>
</div>
</div>
</div>
);
}
しかし、私はエラーを取得していますが言っているこの
handleLoginButtonClick() {
var settings = {
"async": true,
"crossDomain": true,
"url": "https://trigger-backend.appspot.com/auth/login/",
"method": "POST",
"credentials": 'include',
"headers": {
"content-type": "application/x-www-form-urlencoded",
},
"data": {
"password": "apurv",
"username": "Apurv"
},
success: function(data, textStatus, jQxhr){
alert("success");
},
}
$.ajax(settings).done((response) => {
alert(response.auth_token);
this.props.setAuthToken(response.auth_token);
console.log('check');
this.context.router.push('/app')
});
のように、AJAXリクエストからsetAuthTokenを呼び出しています
function matchDispatchToProps(dispatch) {
return bindActionCreators({setAuthToken: actions.setAuthToken}, dispatch);
}
export default connect(matchDispatchToProps)(LogInComponent);
「派遣関数ではありません "。私は間違って何をしていますか?
:代わりに、実際の関数に渡すので、あなたは同様に、バウンドするアクションのクリエイターとオブジェクトに渡すことができますUncaught TypeError:未定義またはnullをオブジェクトに変換できません – ApurvG
残念です - パラメータの完全な名前は 'mapDispatchToProps'であり、それはあなたが書いた関数の名前です。それはしばしば 'mapState'と略されます。あなたは 'connect'に使った実際の関数名を渡すべきです。 – markerikson
同じエラーです。 – ApurvG