我正在使用redux-saga处理要存储的数据,目前我对一个问题感到困惑,我以前从未见过。所以问题是我的reducer调用了两次,并且第一次返回的数据是不确定的,所以我被迫向其中添加默认值 null 。但是,正如我在互联网上的其他示例中看到的那样,没有默认值用例。 这是我的减速器`
import { createReducer } from '../utilities';
import { GET_USER_INFO } from '../actions';
const userInfo = createReducer({}, {
[GET_USER_INFO](state, { userData = null }) {
console.log(userData, 'userData from userReducer');
return userData;
}
});
export default userInfo;
这是用于创建减速器的辅助功能`
const createReducer = (initialState, handlers) => (state = initialState, action) => {
if (Object.prototype.hasOwnProperty.call(handlers, action.type)) {
// console.log(state, 'state from createReducer');
console.log(action, 'action from createReducer');
// console.log(initialState, 'initialState from createReducer');
return handlers[action.type](state, action);
}
return state;
};
export default createReducer;
这是我的传奇`
import axios from 'axios';
import {
take, put, call
} from 'redux-saga/effects';
import { getUserInfo, GET_USER_INFO } from '../actions';
export default function* currentUserSaga() {
try {
yield take(GET_USER_INFO);
const response = yield call(axios, '/api/current_user');
console.log(response, 'responseee from user saga');
yield put(getUserInfo(response.data));
} catch (err) {
console.log(err);
}
}
您可以在我的reducer中看到,我被迫编写默认值,但是也许我做错了事。 是这样吗?也许有更好的解决方案