これは単なる質問です。私が正しいことをしているかどうかを再確認したいと思います。私はさまざまなフレームワークの時代から来ており、初期段階で悪い慣行を避けたいと思っています。
私はこのボイラープレートを使用しています: https://github.com/erikras/react-redux-universal-hot-example で、ES7 で書いています。
作成したもの: - 1 つのレデューサー: EarlyUser.js - 1 つのコンテナー: LandingPage.js - 1 つのコンポーネント: registrationForm.js
ランディングページには、次の方法でレデューサーのメソッドを含めています。
import { saveEmail, savePreferences, checkEmailExists } from 'redux/modules/earlyUser';
そして、いくつかのハンドルを宣言します
handleSubmitEmail(data) {
this.props.saveEmail(data);
}
handleSubmitPreferences(data) {
//some data manipulation
this.props.savePreferences(data);
}
JSX 部分では、コンポーネントにハンドラーを渡すだけです。
<registrationForm submitEmail= {::this.handleSubmit} etc... >
コンポーネント内で、フォーム送信をこのハンドラーにリンクしました。
submitEmail() {
if (this.validateEmail(this.state.email)) {
this.props.submitEmailHandler(this.state);
}
}
今私の質問は、返された約束の .then と .catch をどこに添付すればよいですか? 理想的には、component.js内で次のようなことをしたいと思います
this.props.submitEmailHandler(this.state).then( function emailRegisterCallback(){
// move to next step
}).catch( function errorHandler(error){
// there was an error
}
あれは正しいですか?
また、ES7 でプロミスを処理するための正しい構文はありますか?