RNFS.exists() всегда возвращает FALSE

#javascript #android #react-native #react-native-android

#javascript #Android #react-native

Вопрос:

Метод RNFS.exists() всегда возвращает false, даже если файл существует. Мой файл хранится в созданной вручную папке app/ assets

импортируйте React, {Component} из ‘react’ импортируйте {View, Text, Image, Button} из ‘react-native’ импортируйте стили из «./styles» импортируйте { Provider как PaperProvider } из ‘react-native-paper’; var RNFS = require(‘react-native-fs’);

класс CharacterSelect расширяет компонент{

 static navigationOptions = {
    header: null
}

constructor() {
    super()
    this.state = {
        displayView:null
    }
}


async funcy() {
    RNFS.exists(await "@assets/character.json")
    .then((exists) => {
        if (exists){
            console.warn("in the if statement")
        } else {
            console.warn("in the else statement")
        }
    })
}

render() {
    this.funcy()



    const {} = styles
    return(
        <PaperProvider>
        <View style={styles.viewTitle}>
                <Text style={styles.textStyle}>Welcome to RpgDoIt!</Text>
                <Image style={styles.image} source={require('@assets/titlelogo.png')}/>
        </View>

        {this.state.displayView}
        </PaperProvider>
    )
}
  

}

экспортировать выбор символов по умолчанию

Комментарии:

1. Если вы имеете в виду активы Android, то они на самом деле не являются файлами и к ним нельзя получить доступ через файловую систему — к ним необходимо получить доступ через AssetManager. Если это какая-то другая концепция, о которой я никогда не слышал, вы можете игнорировать это.

Ответ №1:

Если вы не добавляете тег разрешения на хранение в AndroidManifest.xml файл, RNFS.exists() всегда будет возвращать false. Поэтому вам следует добавить эту строку в свой AndroidManifest.xml файл.

добавьте эту строку в android/app/src/main/AndroidManifest.xml:

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  

Комментарии:

1. Спасибо за ваш ответ!! Я добавил это и READ_EXTERNAL_STORAGE» />, поместил мой файл в ресурсы под / android /app /src / main /assets и использовал existsAssets, и это, похоже, сработало! Однако он не распознает удаляемый файл, если приложение не перезагружено из командной строки :/