2016-08-25 100 views
0

我瞭解反應的生命週期方法,我想知道如何最好地解決這樣的情景:更新作出反應狀態結束後渲染

我有獲取某人的愛好信息的組件

​​

該數據被髮送到在組件的底部被映射爲道具減速

function mapStateToProps(state) { 
    return { 
    hobbies:state.hobbies.user 
    }; 
} 

我有一個組件調用twitterbootstrap這依賴於我的組件狀態來查看選擇了哪些行。

const selectRowProp = { 
    mode: 'radio', 
    clickToSelect: true, 
    bgColor: "rgba(139, 195, 74, 0.71)", 
    selected: this.state.selected, 
}; 

這是我的問題。我想訪問this.props.hobbies.selected

--UPDATE我使用componentWillRecieveProps,因爲它有一個setState選項。

componentWillReceiveProps(nextProps){ 
    this.setState({selected:next.props.hobbies }) 
} 

我想使用this.props.hobbies.selected作爲下一個要接收的道具。我將如何納入這一點?

+1

你可以使用componentWillReceiveProps嗎? – ioseph

+0

@ioseph感謝您的提示!我做了一些研究,我認爲這是正確的。你知道設置「選擇」到this.props.hobbies.selected狀態的正確語法是? – lost9123193

+1

已選擇:nextProps.hobbies –

回答

1

nextProps是在第一次渲染之後傳遞的道具對象。函數componentWillReceiveProps中沒有任何內容稱爲next.props。你可以做那樣的事情。

componentWillReceiveProps(nextProps){ 
    this.setState({selected:nextProps.hobbies }) 
}