json - null 不是对象(评估“RNFSManager.RNFSFileTypeRegular”)
问题描述
所以我试图用 react-native 和 JSON 文件做一个注册表单,但我不能用 react-native-fs 将数据写入 JSON 文件。
我已经安装了 rnfs 并链接了它和一些必需的包,但仍然没有工作。
我也尝试重新安装...但仍然出现此错误。我尝试在谷歌上寻求帮助,但仍然没有找到。
请帮忙。
这是我使用 rnfs 的代码
import React, { useState } from 'react'
import { View, StyleSheet, TouchableOpacity } from 'react-native'
import { Text } from 'react-native-paper'
import Background from '../components/Background'
import Logo from '../components/Logo'
import Header from '../components/Header'
import Button from '../components/Button'
import TextInput from '../components/TextInput'
import BackButton from '../components/BackButton'
import { theme } from '../core/theme'
import { emailValidator } from '../helpers/emailValidator'
import { passwordValidator } from '../helpers/passwordValidator'
import { nameValidator } from '../helpers/nameValidator'
var RNFS = require('react-native-fs')
//var filePath = RNFS.DocumentDirectoryPath + '/data.json'
export default function RegisterScreen({ navigation }) {
const [name, setName] = useState({ value: '', error: '' })
const [email, setEmail] = useState({ value: '', error: '' })
const [password, setPassword] = useState({ value: '', error: '' })
const onSignUpPressed = () => {
const nameError = nameValidator(name.value)
const emailError = emailValidator(email.value)
const passwordError = passwordValidator(password.value)
if (emailError || passwordError || nameError) {
setName({ ...name, error: nameError })
setEmail({ ...email, error: emailError })
setPassword({ ...password, error: passwordError })
return
}
/* let info = {
username: email.value,
password: password.value
}
let data = JSON.stringify(info)
RNFS.writeFile(filePath, info, 'utf8')
.then((success) => {
console.log('SUCCESS');
})
.catch((err) => {
console.log(err.message);
});*/
navigation.reset({
index: 0,
routes: [{ name: 'Dashboard' }],
})
}
return (
<Background>
<BackButton goBack={navigation.goBack} />
<Logo />
<Header>Create Account</Header>
<TextInput
label="Name"
returnKeyType="next"
value={name.value}
onChangeText={(text) => setName({ value: text, error: '' })}
error={!!name.error}
errorText={name.error}
/>
<TextInput
label="Email"
returnKeyType="next"
value={email.value}
onChangeText={(text) => setEmail({ value: text, error: '' })}
error={!!email.error}
errorText={email.error}
autoCapitalize="none"
autoCompleteType="email"
textContentType="emailAddress"
keyboardType="email-address"
/>
<TextInput
label="Password"
returnKeyType="done"
value={password.value}
onChangeText={(text) => setPassword({ value: text, error: '' })}
error={!!password.error}
errorText={password.error}
secureTextEntry
/>
<Button
mode="contained"
onPress={onSignUpPressed}
style={{ marginTop: 24 }}
>
Sign Up
</Button>
<View style={styles.row}>
<Text>Already have an account? </Text>
<TouchableOpacity onPress={() => navigation.replace('LoginScreen')}>
<Text style={styles.link}>Login</Text>
</TouchableOpacity>
</View>
</Background>
)
}
const styles = StyleSheet.create({
row: {
flexDirection: 'row',
marginTop: 4,
},
link: {
fontWeight: 'bold',
color: theme.colors.primary,
},
})
解决方案
推荐阅读
- arduino - 在 Arduino 的 TTGO T-Display 上上传任何脚本时出错
- css - 覆盖的内联样式仍然适用
- android - Wi-Fi Aware (NAN) 的主首选项是否在某些设备上具有默认值?
- scala - 在 scala 中为 SQS 功能编写模拟
- html - Summernote onkeyup 功能替换特殊字符
- flutter - 错误:不能将参数类型“Context”分配给参数类型“BuildContext”?
- dataframe - 限制 spark.read pyspark 的分区数
- python - Python .exe 脚本在 Windows 中立即关闭
- http - Kotlin - WebView 不加载网页
- c++ - 抛出“std::length_error”实例后调用终止