Я создаю свое первое приложение с использованием response и redux, и по какой-то причине структура данных, полученных в асинхронном действии, в IOS (safari) ведет себя по-разному.
Это действие делаетзапрос на выборку (перекрестная выборка):
export function fetchTransactions() {
return (dispatch) => {
dispatch(requestTransactions());
return fetch('/getTransactions', {
method: 'GET',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Cache: 'no-cache',
},
credentials: 'same-origin',
})
.then(
response => response.json(),
error => console.log('An error occurred.', error),
)
.then(json => dispatch(receiveTransactions(json.dados)));
};
}
И действие получения:
export const RECEIVE_TRANSACTIONS = 'RECEIVE_TRANSACTIONS';
export function receiveTransactions(data) {
return {
type: RECEIVE_TRANSACTIONS,
data,
};
}
Редуктор
case 'REQUEST_TRANSACTIONS':
return Object.assign({}, {...state}, {isFetching: true});
case 'RECEIVE_TRANSACTIONS':
return Object.assign({}, {...state}, {data: action.data}, {isFetching: false});
Теперь я покажу вам результатына Firefox, работающем на Linux:
Работает, как и ожидалось, данные транзакции присутствуют в массиве, называемом data.
Вот экран печати изЭмулятор Safari:
Как видите, поля дубликаты и другие поля.Это приводит к неправильной работе приложения.Есть идеи?Большое спасибо и извините за английскую вещь.
@ edit -------------------------------------------
Запуск приложения в другом эмуляторе приводит к хорошему состоянию, но данные не отображаются в таблице, как вы можете видеть ниже:
Как видите, в массиве 100 объектов данных и ничего в таблице, это не происходит в Firefox или Chrome.