如何解决为什么在分配变量之前使用该变量?
我是React Native的新手,正在为一些代码而苦苦挣扎:
import 'react-native-gesture-handler'
import React,{ useState,useEffect } from 'react';
import { StyleSheet,Text,View,Button,Image,TextInput,ActivityIndicator } from 'react-native'
import firebase from "../utils/firebase"
const SettingsScreen = () => {
const [isEditing,setIsEditing] = useState(false)
const [userDataLoaded,setUserDataLoaded] = useState(false)
const [updatedFirstName,setUpdatedFirstName] = useState("")
const user = firebase.auth().currentUser
let userData: firebase.firestore.DocumentSnapshot
firebase.firestore().doc("users/" + user?.uid).get().then(user => {
userData = user
setUserDataLoaded(true)
}).catch(error => {
console.log(error.code,error.message)
})
function onSaveChanges() {
}
return (
<View>
{userDataLoaded ? (
<>
{/* Change Editing Permission */}
< Button title={isEditing ? "Save Changes" : "Edit"} onPress={() => {
setIsEditing(!isEditing)
// save changes
if (isEditing) onSaveChanges();
}} />
{/* First Name */}
<Text>User: {userData.data()}</Text>
<TextInput
editable={isEditing}
placeholder="First Name"
onChangeText={text => setUpdatedFirstName(text)}
// value={updatedFirstName == "" ? userData?.get("firstName") : updatedFirstName}
/>
</>
) : (
<ActivityIndicator />
)}
</View>
)
}
export default SettingsScreen
由于返回部分中使用了userData
,因此出现错误。它说该变量是在分配变量之前使用的。
我的理解是,仅当状态userData
设置为userDataLoaded
时,React才会渲染其中使用true
的部分。如果userDataLoaded
由服务器加载的数据分配,则true
仅设置为userData
。
我在做什么错?感谢您的支持:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。