Выборка данных по IOS реагирует на редукцию - PullRequest
0 голосов
/ 25 апреля 2018

Я создаю свое первое приложение с использованием 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: enter image description here

Работает, как и ожидалось, данные транзакции присутствуют в массиве, называемом data.

Вот экран печати изЭмулятор Safari: enter image description here

Как видите, поля дубликаты и другие поля.Это приводит к неправильной работе приложения.Есть идеи?Большое спасибо и извините за английскую вещь.

@ edit -------------------------------------------

Запуск приложения в другом эмуляторе приводит к хорошему состоянию, но данные не отображаются в таблице, как вы можете видеть ниже:

enter image description here

Как видите, в массиве 100 объектов данных и ничего в таблице, это не происходит в Firefox или Chrome.

...