我有減速,讓我carReducer
,我可以在EditCar組件道具使用:如何使用react-redux中reducer狀態的值更新組件的狀態?
我carReducer
是:
export default function carReducer(state = {}, action) {
switch (action.type) {
case 'GET_SINGLECAR':
return {
...state,
next: action.payload
}
break;
}
return state;
}
而在EditCar組件我宣佈carReducer
爲:
function mapStateToProps(state) {
return {
carReducer: state.carReducer
}
}
export default connect(mapStateToProps, mapDispatchToProps)(EditCar);
現在在同一個組件中,我想在組件加載之前使用此carReducer
更新我的intialState cardata
。
constructor(props) {
super(props);
this.state = {
cardata: {}
}
}
我嘗試使用componentWillReceiveProps
但是這給了我兩個nextProps.carReducer
和this.props.carReducer
undefined
。
componentWillReceiveProps(nextProps) {
if (nextProps.carReducer != this.props.carReducer) {
this.setState({ cardata: nextProps.carReducer });
}
}
我是新的react-redux
所以任何幫助,高度讚賞。謝謝。
你可以分享你減速,行動和你的商店代碼? –
來自文檔:React在掛載期間不會調用componentWillReceiveProps和初始道具:https://facebook.github.io/react/docs/react-component.html#componentwillreceiveprops – aabilio
爲什麼不直接將props.carReader指定給cardata構造函數?無論如何,你正在做的事情並不被認爲是一種好的做法,你只是有了REDX狀態,爲什麼要將它複製到組件狀態中呢? – aabilio