React native “我的登录屏幕中出现错误”;can';“找不到变量”;
我想测试我在这里找到的一个教程:我发现在我的应用程序中使用它很有趣。 我想使代码适应我的API等。 在我看来,我做的每件事都是正确的,但我犯了错误,我希望你能帮助我看到错误,理解错误,纠正错误 登录文件的示例 从“React”导入React,{useState}React native “我的登录屏幕中出现错误”;can';“找不到变量”;,react-native,variables,use-state,React Native,Variables,Use State,我想测试我在这里找到的一个教程:我发现在我的应用程序中使用它很有趣。 我想使代码适应我的API等。 在我看来,我做的每件事都是正确的,但我犯了错误,我希望你能帮助我看到错误,理解错误,纠正错误 登录文件的示例 从“React”导入React,{useState} import { TextInput, View, Text, Image, KeyboardAvoidingView, Keyboard, TouchableOpacity, ScrollView, }
import {
TextInput,
View,
Text,
Image,
KeyboardAvoidingView,
Keyboard,
TouchableOpacity,
ScrollView,
} from 'react-native';
import Loader from '../../src/components/Loader';
import styles from '../../assets/styles';
import i18n from '../../src/i18n'
import {
API_URL,
API_SOCIETYID,
API_SECRETKEY,
} from "../../src/common/Constants";
const Register = props => {
let [userName, setUserName] = useState('');
let [userEmail, setUserEmail] = useState('');
let [userAge, setUserAge] = useState('');
let [userAddress, setUserAddress] = useState('');
let [loading, setLoading] = useState(false);
let [errortext, setErrortext] = useState('');
let [isRegistrationSuccess, setIsRegistrationSuccess] = useState(false);
const handleSubmitButton = () => {
setErrortext('');
if (!userName) {
alert(i18n.t("register.action.errorName"));
return;
}
if (!userEmail) {
alert(i18n.t("register.action.errorMail"));
return;
}
if (!userAge) {
alert(i18n.t("register.action.errorAge"));
return;
}
if (!userAddress) {
alert(i18n.t("register.action.errorAdress"));
return;
}
setLoading(true);
var dataToSend = {
user_name: userName,
user_email: userEmail,
user_age: userAge,
user_address: userAddress,
};
var formBody = [];
for (var key in dataToSend) {
var encodedKey = encodeURIComponent(key);
var encodedValue = encodeURIComponent(dataToSend[key]);
formBody.push(encodedKey + '=' + encodedValue);
}
formBody = formBody.join('&');
fetch(
API_URL +
"/users?society_id=" + API_SOCIETYID +
"&access_token=" + "accessToken" +
"&lang=fr",
{
method: "POST",
headers: {
Accept: "application/json",
"Content-Type": "application/json",
Authorization: "Bearer " + API_SECRETKEY,
"Cache-Control": "no-cache",
Pragma: "no-cache",
Expires: "0",
},
body: JSON.stringify({
userEmail: UserEmail,
mobilephone: phone,
password: pwd,
imei: "0000000000",
os: Platform.OS === "ios" ? "iOS" : "Android",
}),
}
)
.then(response => response.json())
.then(responseJson => {
//Hide Loader
setLoading(false);
console.log(responseJson);
if (responseJson.status == 1) {
setIsRegistrationSuccess(true);
console.log('Registration Successful. Please Login to proceed');
} else {
setErrortext('Registration Unsuccessful');
}
})
.catch(error => {
setLoading(false);
console.error(error);
});
};
if (isRegistrationSuccess) {
return (
<View
style={{
flex: 1,
backgroundColor: '#307ecc',
justifyContent: 'center',
}}>
<Text style={styles.successTextStyle}>{i18n.t("register.action.success")}</Text>
<TouchableOpacity
style={styles.buttonStyle}
activeOpacity={0.5}
onPress={() => props.navigation.navigate('Login')}>
<Text style={styles.buttonTextStyle}>Login Now</Text>
</TouchableOpacity>
</View>
);
}
return (
<View style={{ flex: 1, width: '100%', backgroundColor: '#F78400'}}>
<Loader loading={loading} />
<ScrollView keyboardShouldPersistTaps="handled">
<View style={{ alignItems: 'center' }}>
<Image
source={require('../../assets/images/accounting.png')}
style={{
width: '50%',
height: 100,
resizeMode: 'contain',
margin: 30,
}}
/>
</View>
<KeyboardAvoidingView enabled>
<View style={styles.SectionStyle}>
<TextInput
style={styles.inputStyle}
onChangeText={UserName => setUserName(UserName)}
underlineColorAndroid="#FFFFFF"
placeholder="Enter Name"
placeholderTextColor="#F6F6F7"
autoCapitalize="sentences"
returnKeyType="next"
onSubmitEditing={() =>
_emailinput && _emailinput.focus()
}
blurOnSubmit={false}
/>
</View>
<View style={styles.SectionStyle}>
<TextInput
style={styles.inputStyle}
onChangeText={UserEmail => setUserEmail(UserEmail)}
underlineColorAndroid="#F6F6F7"
placeholder="Enter Email"
placeholderTextColor="#F6F6F7"
keyboardType="email-address"
ref={ref => {
_emailinput = ref;
}}
returnKeyType="next"
onSubmitEditing={() => _ageinput && _ageinput.focus()}
blurOnSubmit={false}
/>
</View>
<View style={styles.SectionStyle}>
<TextInput
style={styles.inputStyle}
onChangeText={UserAge => setUserAge(UserAge)}
underlineColorAndroid="#F6F6F7"
placeholder="Enter Age"
placeholderTextColor="#F6F6F7"
keyboardType="numeric"
ref={ref => {
_ageinput = ref;
}}
onSubmitEditing={() =>
_addressinput && _addressinput.focus()
}
blurOnSubmit={false}
/>
</View>
<View style={styles.SectionStyle}>
<TextInput
style={styles.inputStyle}
onChangeText={UserAddress => setUserAddress(UserAddress)}
underlineColorAndroid="#FFFFFF"
placeholder="Enter Address"
placeholderTextColor="#F6F6F7"
autoCapitalize="sentences"
ref={ref => {
_addressinput = ref;
}}
returnKeyType="next"
onSubmitEditing={Keyboard.dismiss}
blurOnSubmit={false}
/>
</View>
{errortext != '' ? (
<Text style={styles.errorTextStyle}> {errortext} </Text>
) : null}
<TouchableOpacity
style={styles.buttonStyle}
activeOpacity={0.5}
onPress={handleSubmitButton}>
<Text style={styles.buttonTextStyle}>{i18n.t("register.action.register")}</Text>
</TouchableOpacity>
</KeyboardAvoidingView>
</ScrollView>
</View>
);
};
export default Register;
导入{
文本输入,
看法
文本,
形象,,
键盘避免了gView,
键盘
可触摸不透明度,
滚动视图,
}从“反应本机”;
从“../../src/components/Loader”导入加载程序;
从“../../assets/styles”导入样式;
从“../src/i18n”导入i18n
进口{
API_URL,
API_SOCIETYID,
API_秘密密钥,
}来自“../../src/common/Constants”;
常量寄存器=道具=>{
let[userName,setUserName]=useState(“”);
让[userEmail,setUserEmail]=useState(“”);
let[userAge,setUserAge]=useState(“”);
let[userAddress,setUserAddress]=useState(“”);
let[loading,setLoading]=useState(false);
let[errortext,setErrortext]=useState(“”);
让[isRegistrationSuccess,setIsRegistrationSuccess]=useState(false);
常量handleSubmitButton=()=>{
setErrortext(“”);
如果(!用户名){
警报(i18n.t(“register.action.errorName”);
返回;
}
如果(!userEmail){
警报(i18n.t(“register.action.errorMail”);
返回;
}
如果(!userAge){
警报(i18n.t(“register.action.errorAge”);
返回;
}
如果(!userAddress){
警报(i18n.t(“register.action.errorAddress”);
返回;
}
设置加载(真);
var dataToSend={
用户名:用户名,
用户电子邮件:用户电子邮件,
用户年龄:用户年龄,
用户地址:用户地址,
};
var formBody=[];
for(dataToSend中的var键){
var encodedKey=encodeURIComponent(键);
var encodedValue=encodeURIComponent(dataToSend[key]);
formBody.push(encodedKey+'='+encodedValue);
}
formBody=formBody.join('&');
取回(
API_URL+
“/users?society_id=“+API_SOCIETYID+
“&access_token=“+”accessToken”+
“&lang=fr”,
{
方法:“张贴”,
标题:{
接受:“应用程序/json”,
“内容类型”:“应用程序/json”,
授权:“持有人”+API_保密密钥,
“缓存控制”:“无缓存”,
Pragma:“无缓存”,
过期:“0”,
},
正文:JSON.stringify({
userEmail:userEmail,
手机:,
密码:pwd,
imei:“0000000000”,
os:Platform.os==“ios”?“ios”:“Android”,
}),
}
)
.then(response=>response.json())
.然后(responseJson=>{
//隐藏装载机
设置加载(假);
console.log(responseJson);
if(responseJson.status==1){
setIsRegistrationSuccess(真);
console.log('注册成功,请登录继续');
}否则{
setErrortext(“注册失败”);
}
})
.catch(错误=>{
设置加载(假);
控制台错误(error);
});
};
如果(isRegistrationSuccess){
返回(
{i18n.t(“register.action.success”)}
props.navigation.navigate('Login')}>
立即登录
);
}
返回(
setUserName(UserName)}
underlineColorAndroid=“#FFFFFF”
占位符=“输入名称”
占位符textcolor=“#F6F6F7”
autoCapitalize=“句子”
returnKeyType=“下一步”
onSubmitEditing={()=>
_emailinput&&U emailinput.focus()
}
blurOnSubmit={false}
/>
setUserEmail(UserEmail)}
underlineColorAndroid=“#F6F6F7”
占位符=“输入电子邮件”
占位符textcolor=“#F6F6F7”
keyboardType=“电子邮件地址”
ref={ref=>{
_emailinput=ref;
}}
returnKeyType=“下一步”
onSubmitEditing={()=>\u ageinput&&\u ageinput.focus()}
blurOnSubmit={false}
/>
setUserAge(UserAge)}
underlineColorAndroid=“#F6F6F7”
占位符=“输入年龄”
占位符textcolor=“#F6F6F7”
keyboardType=“数字”
ref={ref=>{
_年龄输入=参考;
}}
onSubmitEditing={()=>
_addressinput&&U addressinput.focus()
}
blurOnSubmit={false}
/>
setUserAddress(UserAddress)}
underlineColorAndroid=“#FFFFFF”
占位符=“输入地址”
占位符textcolor=“#F6F6F7”
autoCapitalize=“句子”
ref={ref=>{
_addressinput=ref;
}}
returnKeyType=“下一步”
onSubmitEditing={Keyboard.disclose}
blurOnSubmit={false}
/>
{errortext!=''(
{errortext}
):null}
{i18n.t(“register.action.register”)}
);
};
导出默认寄存器;
它给了我
“ReferenceError:找不到变量:UserEmail”
将
UserEmail
更改为UserEmail
body: JSON.stringify({
userEmail: userEmail, // here
........
}),
因此,好的第一步是读取错误消息。1) 找不到变量
UserEmail
。2) CTRL+FUserEmail
3)替换为正确的名称(UserEmail
)。非常感谢,我真的很抱歉我认为这是一个声明问题