2017-07-24 28 views
0

我組合減速器並在index.js中添加初始狀態。React-redux:爲什麼我發送一個動作狀態改變但視圖不更新?

const store = createStore(Reducers, initialState); 

mapDispatchToProps這樣的:

const mapDispatchToProps = (dispatch, ownProps)=>({ 
    getAboutMeData:()=> dispatch(getAboutMeData()) 
}); 

,我的行爲是這樣的:

export const getAboutMeData =() => ({ 
    type: GET_ABOUTME_DATA, 
    payload:{ 
     basicInfo: { 
      name: "change data", 
      job: "change data", 
      hometown: "change data", 
      birthday: "change data", 
      degree: "change data", 
      livein: "change data", 
      avater: "change data", 
      school: "change data", 
      majorIn: "change data" 
     } 
    } 

}) 

更新我的組件時,使用componentDidMount由:

componentDidMount(){ 
    const {getAboutMeData} =this.props; 
    getAboutMeData(); 
} 

和我紅眼ERS是這樣的:

export default function aboutMe(state= {}, action) { 
switch(action.type) { 
    case GET_ABOUTME_DATA: 
    return action.payload 
    default: 
     return state 
} 
} 

但我的組件沒有更新狀態,我不知道爲什麼。

+3

你已經mapStateToProps配置 –

+0

是的,我做到了,常量mapStateToProps =(州,ownProps)=>( { aboutMe:state.aboutMe }) 出口默認連接( mapStateToProps, mapDispatchToProps )(AboutMe) – huxinmin

+0

可以告訴你你的組件 –

回答

0

組件僅使用道具或狀態更改進行更新。因此調度一個動作和更新一個組件是不相關的。

您應該配置mapStateToProps像下面

const mapStateToProps = state => { 
    return { 
     aboutMe: state.aboutMe 
    }; 
} 

const mapDispatchToProps = (dispatch, ownProps)=>({ 
    getAboutMeData:()=> dispatch(getAboutMeData()) 
}); 

export default connect(mapStateToProps, mapDispatchToProps)(Component) 
+0

是的,我完全按照你告訴我的方式做了,但沒有奏效。 – huxinmin

+0

嗯.. 如果組件有,檢查「shouldComponentUpdate」方法。 並調試商店的狀態對象。我建議你安裝redux-devtools :: https://github.com/gaearon/redux-devtools –

相關問題