2016-12-06 7 views
0

マイコンテナ:変更後の状態が私のプロパティにマップされないのはなぜですか?

import React, { Component } from 'react'; 
import { connect } from 'react-redux'; 
import Example from '../components/example.jsx'; 

class ExampleContainer extends Component { 
    render() { 
    return (
     <Example isUploading={this.props.isUploading}/> 
    ); 
    } 
} 

const mapStateToProps = (state) => ({ 
    isUploading: state.isUploading 
}); 

export default connect(mapStateToProps)(ExampleContainer); 

マイ減速:

import { combineReducers } from 'redux'; 
import * as actionTypes from '../constants/action-types.js'; 

const initialState = { 
    isUploaded: false, 
    isUploading: false 
}; 


function isUploading(state = initialState, action) { 
    switch (action.type) { 
    case actionTypes.IS_UPLOADED: 
     return action.payload; 
    default: 
     return state; 
    } 
} 

function isUploaded(state = initialState, action) { 
    switch (action.type) { 
    case actionTypes.IS_UPLOADING: 
     return action.payload; 
    default: 
     return state; 
    } 
} 

export default combineReducers({ 
    isUploading, 
    isUploaded, 
}); 

は、私は私のisUploading状態が私のコンソールに変更するが、私の例の構成要素にisUploadingプロパティが変更されていない参照してください。これは最初に定義されたプロパティと同じ値を持ちます。また、mapStateToProps関数は一度だけ呼び出されていることもわかります。

+0

example.jsxコードを追加 –

+0

いつ、どのように更新プログラムを送信していますか? – Pineda

答えて

1

(スペースおよび書式設定のためのコメントから移動しました。)

あなたの減速がマッピングされている

に?例えば、あなたの減速は、次のようにマップされている場合:

export const rootReducer = combineReducers({ 
    uploading: uploadingReducer, 
    // etc 
}) 

、あなたのmapStateToPropsは(stateな破壊に注意)のようになります。

const mapStateToProps = ({ uploading }) => ({ 
    isUploading: uploading.isUploading 
}); 

それが期待どおりに変更だそうだが、代わりにブール値を渡すには、減速機に含まれる状態全体を通過します。

+0

でも、マップする複数の州がある場合はどうなりますか? (理由は何ですか?しかし、私はこの質問をより簡単にするために削除しました) –

+0

私の現在のレデューサーファイルで私の投稿を更新しました –

+0

@JimPeeters \tどうすればよいですか?あなたが望むものをマップすることはできますが、それでも正しいものをマッピングする必要があります。あなたのペイロードが何であるかを知らなければ、コードがそのまま意味を持つかどうかは分かりません。 (または、サブコンポーネントでそのプロパティがどのように使用されているか)[redux-devtools](https://github.com/gaearon/redux-devtools)でその状態を表示すると、どのように見えますか? ? –

関連する問題