В моем собственном реактивном проекте я недавно установил узел-реактив-native-async-storage модуля узла, так как я получил предупреждения об устаревшем и переместил его в отдельный модуль.
После установки @react-native-community/async-storage
мой шутник не проходит.
сначала со следующим error: unexpected token at position 0
в файле:
persistence.js
import AsyncStorage from '@react-native-community/async-storage';
storeData = async ({ key, value }) => {
try {
await AsyncStorage.setItem(key, value);
} catch (error) {
// Error saving data
}
}
retrieveData = async (key) => {
try {
const value = await AsyncStorage.getItem(key);
if (value !== null) {
// Our data is fetched successfully
return value;
}
} catch (error) {
// Error retrieving data
}
}
module.exports = {
storeData,
retrieveData
}
Итак, я предполагаю, что этосвязана с некоторой конфигурацией babel, так как я столкнулся с чем-то похожим в прошлый раз, когда я установил пакет из @ response-native-community
Итак, к transformIgnorePatterns
в моем package.json я добавил следующее:
"jest": {
"preset": "react-native",
"transformIgnorePatterns": [
"node_modules/(?!react-native|@react-native-community/async-storage|native-base-shoutem-theme|@shoutem/animation|@shoutem/ui|tcomb-form-native)"
]
}
Но теперь я получаю новую ошибку.@RNCommunity/AsyncStorage: NativeModule.RCTAsyncStorage is null.
Я вставляю скриншот, чтобы показать каталог моего проекта, чтобы вы могли понять, с какими конфигурационными файлами можно связываться.
Как я вижу, большинство связанных тем касаются насмешки над функцией asyncStorage, которую я пытался сделать, но безуспешно.Я добавил следующее в свой единственный тестовый файл:
import MockAsyncStorage from 'mock-async-storage';
beforeAll(() => {
const mockImpl = new MockAsyncStorage()
jest.mock('AsyncStorage', () => mockImpl)
snapshot = renderer.create(<App />);
})
afterAll(() => {
jest.unmock('AsyncStorage')
});
Все еще нет сигары.Я попытался добавить setupFilesAfterEnv.js
с конфигурациями, как предполагает другой ответ, также не сработал.