Пожалуйста помогите!
Уже несколько дней пытаюсь решить проблему с кешированием данных в 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.
Очевидно есть какая-то оптимизация движка и очень жесткий кэш.
Подскажите как мне решить эту проблему?
Заранее благодарен!