2016-08-19 7 views
-1

これは私のutilモジュールで、reduxアクションを使用すると動作しません。 リアクション使用reducex動作しません自分のモジュール

import {openloading} from '../actions/loading' 
export default function (e) { 
    openloading(e.font); 
} 

しかし、私の中

は、それ自体は名前与えられた皮肉である何をやるん

+1

コンポーネント内から 'dispatch()'にアクセスするには、アクションをディスパッチする必要があります。http://stackoverflow.com/a/34458710/1744768 –

+0

アクションをインポートして使用することはできません。コンポーネントをコンテナ内のreduxに接続する必要がある場合、アクションは小道具として渡されます。私は 'mapDispatchToProps'を好む – ajmajmajma

答えて

0

アクション動作しコンポーネントを反応させます。行動は、起こることと状態がどのように変化するかを記述するだけです。これらの命令がレデューサーにディスパッチされると、実際に変更が発生します。 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) 

注意。

関連する問題