@NkDev

Как отключить кеширование в React Native при использовании «require»?

Пожалуйста помогите!
Уже несколько дней пытаюсь решить проблему с кешированием данных в React Native.

Итак, я создаю новый проект:

expo init new-project

Далее в корневой файл добавляю код:

export default function App() {

  // Я получаю содержимое файла 'json' и клонирую его в новую независимую переменную
  // Далее я модифицирую 'clone' и вывожу его в консоль
  let admins = require('./test.json');
  let clone = Object.assign({}, admins);
  clone[0].key2 = 'value2'
  console.log(clone);


  // Пытаюсь очистить кэш
  var cache = require.cache;
  for (var moduleId in cache) {
    delete cache[moduleId];
  }

  // Пытаюсь получить начальное состояние файла test.json
  // Снова получаю содержимое файла 'json' и клонирую его в новую независимую переменную
  // Печатаю 'clone2' в консоль
  let admins2 = require('./test.json');
  let clone2 = Object.assign({}, admins2);
  console.log(clone2)
  
  return <></>
}


Содержимое файла 'test.json':

[
    {
        "key1":"value1"
    }
]


При выполнении этого скрипта в консоли получаю:

Object {
  "0": Object {
    "key1": "value1",
    "key2": "value2",
  },
}


Object {
  "0": Object {
    "key1": "value1",
    "key2": "value2",
  },
}


Т.е. я получаю два одинаковых результата.

Я не понимаю почему, ведь я работаю с полностью независимыми переменными!
Я пытаюсь получить начальное состояние файла test.json.
Очевидно есть какая-то оптимизация движка и очень жесткий кэш.
Подскажите как мне решить эту проблему?

Заранее благодарен!
  • Вопрос задан
  • 118 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы