こんにちは@jaredpalmer 、starter-projectを使用してプロジェクトの作業を開始しました。 すごい仕事!
ユーザーインタラクション(ボタンクリックなど)でreduxアクションをディスパッチすることについて質問があります。 私の質問は正しい構文についてです。 以前、私はコンストラクターを呼び出し、次のようにバインド関数を呼び出しました。
function mapDispatchToProps(dispatch) {
return bindActionCreators({
importedAction,
}, dispatch);
}
class Calendar extends React.Component {
constructor(props) {
super(props);
this.handleClick = this.handleClick.bind(this);
}
handleClick(programId) {
this.props.importedAction()
.then((response) => {
do something with response
});
}
}
....
render() {
return (
<a onClick={this.handleClick}>Click me to dispatch action</a>
)
}
「extendsReact.Component」を常に記述しないようにするbabel-pluginがインストールされていると思います。 'bindActionCreators'も表示されません。
質問、スタータープロジェクトで使用できる方法で上記をどのように記述しますか?
function mapDispatchToProps(dispatch) {
return bindActionCreators({
importedAction,
}, dispatch);
}
class Calendar extends React.Component {
handleClick(programId) {
this.props.importedAction()
.then((response) => {
do something with response
});
}
}
....
render() {
return (
<a onClick={(evt) => this.handleClick()}>Click me to dispatch action</a>
)
}
react-redux
connect
を使用していないようです:
import {connect} from'react-redux'
...コンポーネント...
デフォルトのconnect(mapStateToProps、actionCreators)(カレンダー)をエクスポートします
ボイラープレートとは関係がないため、これを閉じます。 ただし、Reduxに関するDanAbramovのコースを視聴することをお勧めします。
connect
のreact-redux
APIもチェックしてください: https ://github.com/reactjs/react-redux/blob/master/docs/api.md#connectmapstatetoprops -mapdispatchtoprops-mergeprops-options
最も参考になるコメント
react-redux
connect
を使用していないようです:import {connect} from'react-redux'
...コンポーネント...
デフォルトのconnect(mapStateToProps、actionCreators)(カレンダー)をエクスポートします