如何将数据传递给reducer?
我有这样的行动
export function loginFailed(error){
return {
type: types.LOG_IN_ERROR,
error
}
}
我希望我的reducer中的传递错误以及在我的视图组件中显示错误
之后export function loginUser(credentials) {
return function(dispatch) {
return sessionApi.login(credentials).then(response => {
dispatch(loginFailed(response.status));
}).catch(error => {
throw(error);
});
};
}
例如,我试图传递response status
。
这是我的减速机
export const errorMessage = (state = null, action) => {
switch(action.type){
case LOG_IN_ERROR:
return action.errorMessage
default:
return state;
}
}
我的观点 当我试图传递此错误时
function mapStateToProps(state, ownProps) {
return {
errorMessage: state.error
};
}
只是this.props.errorMessage
。我得到了不确定:/
希望你的帮助
答案 0 :(得分:2)
你很近,只有一点点。您正在动作创建者中传递error
对象。
return { type: types.LOG_IN_ERROR, error }
因此,在您的reducer中,您可以通过action.error
访问该对象,而不是action.errorMessage
。
正如另一位用户所提到的,返回一个新对象:
return {...state, error: action.error}
在mapStateToProps中,您可以像这样访问错误道具:
function mapStateToProps(state) {
return {
errorMessage: state.error
};
}