我有减速器给我carReducer
,我可以在EditCar组件中用作道具:
我的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);
现在在同一个组件中,我想在组件加载之前使用此cardata
更新我的intialState carReducer
。
constructor(props) {
super(props);
this.state = {
cardata: {}
}
}
我尝试使用componentWillReceiveProps
,但这在undefined
和nextProps.carReducer
中都给了this.props.carReducer
。
componentWillReceiveProps(nextProps) {
if (nextProps.carReducer != this.props.carReducer) {
this.setState({ cardata: nextProps.carReducer });
}
}
我是react-redux
的新人,所以我们非常感谢您的帮助。谢谢。
答案 0 :(得分:0)
在这种情况下无需使用componentWillRecieveProps
。只需将next
替换为减速器中的carReducer
答案 1 :(得分:0)
方法1 - 尝试使用componentDidMount()
componentDidMount() {
this.setState = ({
cardata: this.props.carReducer
})
}
方法2 - 您可以尝试在构造函数本身
中执行此操作constructor(props) {
super(props);
this.state = {
cardata: props.carReducer
}
}