Мне удалось перенести мое приложение в Webpack4 (из 3), но я застрял со странной проблемой.Поле API response.data изменено с объекта на строку (из json).Я мог бы, вероятно, просто запустить JSON.parse (response.data), но я бы скорее выяснил, почему это произошло, и исправил бы это
Я использую redux-saga и axios.Приведенный ниже код саги не изменился.Я изменил приложение как можно меньше, чтобы заставить его скомпилировать.Axios имеет ту же версию
function login(payload) {
const url = __API__ + 'xx/login'
var params = new URLSearchParams()
for (var property in payload) {
if (payload.hasOwnProperty(property)) {
params.append(property, payload[property])
}
}
return axios.post(url, params, { headers: { crossDomain: true, 'content-type': 'application/x-www-form-urlencoded;charset=utf-8' } })
.then(response => response)
.catch(err => { throw err })
}
function* loginSaga({ payload }) {
try {
const response = yield call(login, payload)
const { data } = response
yield put(Actions.loginSucceded(data))
}
catch (err) {
if (err.hasOwnProperty("message")) {
yield put(Actions.loginFailed(err.message))
return
}
yield put(Actions.loginFailed("Unknown network error"))
}
}
Я ожидаю, что ответ API будет объектом, а response.data также будет объектом.Но после миграции response.data теперь является строкой (из json)