Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native “我的登录屏幕中出现错误”;can';“找不到变量”;_React Native_Variables_Use State - Fatal编程技术网

React native “我的登录屏幕中出现错误”;can';“找不到变量”;

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, }

我想测试我在这里找到的一个教程:我发现在我的应用程序中使用它很有趣。 我想使代码适应我的API等。 在我看来,我做的每件事都是正确的,但我犯了错误,我希望你能帮助我看到错误,理解错误,纠正错误

登录文件的示例

从“React”导入React,{useState}

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+F
UserEmail
3)替换为正确的名称(
UserEmail
)。非常感谢,我真的很抱歉我认为这是一个声明问题