Я создаю приложение реагирования с редуксом в качестве менеджера состояний. Все действия на рабочем столе работают нормально, но вылетает, как только я пытаюсь использовать приложение на iOS.
Например, у меня есть страница входа в систему, и она работает, как и следовало ожидать в веб-браузере на рабочем столе, но на ios я получаю эту ошибку - Unhandled Rejection (TypeError): undefined не является объектом (оценка 'err.response.data') .
Я вложил файл моего магазина приставки ниже
Изначально я думал, что это ошибка с инструментами redux dev, но даже после удаления этой строки кода он все равно вылетает
createStore,
applyMiddleware,
compose
} from 'redux';
import thunk from 'redux-thunk';
import rootReducer from './reducers/index'
const middleware = [thunk];
const initialState = {};
const getComposeEnhancers = () => {
if (window.navigator.userAgent.includes('Chrome')) {
return compose(
applyMiddleware(...middleware), window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
);
} else
return compose(applyMiddleware(...middleware));
};
const store = createStore(rootReducer,
initialState,
getComposeEnhancers()
);
export default store;
// This is the authActions file, responsible for registering and login
import axios from 'axios';
import setAuthToken from '../utils/setAuthToken';
import {GET_ERRORS, SET_CURRENT_USER} from './types';
import jwt_decode from 'jwt-decode';
const url = 'http://localhost:5000/api';
//register
export const registerUser = (userData, history) => dispatch => {
axios.post(`${url}/auth/register`, userData)
.then(res=>{history.push('/login')
}).catch(err=> dispatch({
type: GET_ERRORS,
payload: err.response.data
}))
}
//login
export const loginUser = (userData)=> dispatch=>{
axios.post(`${url}/auth/login`, userData)
.then(res=>{
//save to local storage
const {token} = res.data;
//set token to localstorage
localStorage.setItem('jwt_token', token);
//set token to auth header
setAuthToken(token);
//decode token to get userData
const decoded = jwt_decode(token);
//set current user
dispatch(setCurrentUser(decoded))
}).catch(err=> dispatch({
type: GET_ERRORS,
payload: err.response.data
}))
}
//set logged in user
export const setCurrentUser = (decoded)=>{
return {
type: SET_CURRENT_USER,
payload: decoded
}
}
//log out user
export const logoutUser=()=>dispatch=>{
//rm jwt_token
localStorage.removeItem('jwt_token');
//rm auth header
setAuthToken(false);
//set setCurrentUser to {}
dispatch(setCurrentUser({}))
}```