アクション動作しコンポーネントを反応させます。行動は、起こることと状態がどのように変化するかを記述するだけです。これらの命令がレデューサーにディスパッチされると、実際に変更が発生します。 Paulが言ったように、あなたは発送方法にアクセスする必要があります。
通常、コンポーネント内からutilモジュール関数を呼び出しています。この場合、ディスパッチメソッドをパラメータとして渡すことができます。
import { openloading } from '../actions/openloading'
export const myFn = (e, dispatch) => {
dispatch(openloading(e.font))
}
あなたのコンポーネントがそうのようReduxのまで配線されるはずです:発送はmapDispatchToProps
で小道具としてコンポーネントに渡さなっていることを
import React from 'react'
import { connect } from 'react-redux'
import { myFn } from 'somewhere'
const myComponent = ({ dispatch }) => {
myFn(e, dispatch)
return (
<div>
{ ...whatever }
</div>
)
}
const mapStateToProps = (state) => {
return { ...stuff }
}
const mapDispatchToProps = (dispatch) => {
return {
dispatch: dispatch
}
}
export default connect(mapStateToProps, mapDispatchToProps)(myComponent)
注意。
コンポーネント内から 'dispatch()'にアクセスするには、アクションをディスパッチする必要があります。http://stackoverflow.com/a/34458710/1744768 –
アクションをインポートして使用することはできません。コンポーネントをコンテナ内のreduxに接続する必要がある場合、アクションは小道具として渡されます。私は 'mapDispatchToProps'を好む – ajmajmajma