2016-10-27 19 views
0

私はreduxを初めて使っています。簡単に開始するために、Reduxを使用してグローバル状態値を表示しようとしています。アクションが呼び出されていませんredux

コンソールでアクションオブジェクトを表示しようとすると、 "Object {type:" @@ redux/INIT "}"が表示されます。これは何ですか ?

import React, {Component} from 'react'; 
import ReactDOM from 'react-dom'; 
import {createStore} from 'redux'; 
import {Provider, connect} from 'react-redux'; 

class AllinOne extends Component{ 
    render(){ 
    return (
     <div>k 
     {this.props.globalState} 
     </div> 
    ) 
    } 
} 


const store = createStore(myREducer); 
store.dispatch(add); 

const mapStateToProps = (globalState) => { 
    return { globalState: globalState } 
} 


// Action 
const add =() => { 
    return {type : 'ADD'} 
} 

// Reducer 
function myREducer(state=0, action) { 
    console.log('counter', action) // returns Object {type: "@@redux/INIT"} 

    return state; 
} 

export default connect (mapStateToProps)(AllinOne); 
ReactDOM.render(<AllinOne />, document.getElementById('app')) 

答えて

1

ご覧のアクションは状態の初期化です:

は、ここに私の簡単なコードです。 addアクションはその後にディスパッチする必要があります。

があなたの問題につながることができ、複数のポイントがあります。

まず、addはので、多分あなたは何もしませんdispatch(undefined)を呼び出して、宣言される前に送出されます。しかし、これはあなたの例ではおそらくコピーの貼り付けの問題です。

さらに重要なことは、addがオブジェクトでなければならない場合の機能です。だから、あなたが試してみてください:

// Action 
const add = {type : 'ADD'} 
+0

おかげで...もう一つ...私はES6フォーマット機能で減速を書き込もうとしました: のconst myREducer =(状態= 0、アクション)=> { 。 .. } それは言う:減速機が機能することを期待。どうして ? –

+0

それは動作するはずです。それが注文問題(あなたがそれを使用した瞬間に定義された変数)ではない場合は、わかりません。 –

+0

それは興味深いです。あなたが実用的な例でjsFiddleまたは要点を設定できるなら、それはクールだ。 –

関連する問題