0
所以我在我的應用程序中有一個Stage
,它包含不同的每組數據。父母的setState之後的退孩子
我想要做的是如果我改變了我的舞臺,我的孩子組件刷新來自上述舞臺的數據。有
我在每一個頁面的頂部這一階段的選擇,在我App.jsx
組件。 這個階段是由國家通過終極版
....
changeStage: function (stageId) {
this.props.setStage(this.getStageById(stageId));
},
....
var mapDispatchToProps = function (dispatch) {
return {
setStage: function (data) { dispatch(stageService.setStage(data)); }
}
};
module.exports = ReactRedux.connect(mapStateToProps, mapDispatchToProps)(App);
現在在我的二級處理(孩子 - 但內心深處)組件我有以下幾點:
shouldComponentUpdate: function (nextprops, nextstate) {
console.log("stage id in this component: " + this.state.stageId);
console.log("stage id in nextstate: " + nextstate.stageId);
console.log("stage id from the redux store: "+ this.props.stage.id)
return true;
},
....
var mapStateToProps = function (state) {
return {
stage: state.stage
};
}
但nextstate
不包含更新的階段,但而不是前一個階段,這是有道理的。 state.stageId
也包含之前 - 也仍然有道理。 但this.props.stage.id
我預計包含新選定的階段,但它沒有。
它實際上包含之前的階段,這意味着在狀態更新或更新狀態之前調用它。
所以無論如何我的問題,我怎樣才能得到新的階段選擇? 我不想把舞臺對象傳遞給我的所有孩子,因爲那會讓它變得不可讀,並且在我看來會馬虎。 任何人有任何想法?
的
你試過nextprops.stage.id而不是當前this.props.stage.id嗎? –
這確實有用,請將其作爲回答發佈,以便我可以接受。謝謝。 – Tikkes