React native undefined不是react native中的对象(计算';Amazon.trim';)

React native undefined不是react native中的对象(计算';Amazon.trim';),react-native,React Native,我是个新来的本地人。我已经创建了一个表单。但现在它并没有向服务器发送数据。当我点击提交按钮时。它不断地抛出这样的错误 undefined is not an object (evaluating 'Amazon.trim') 所以我的代码有什么问题,请帮忙。 这是我的密码 export default function Add(props) { const { navigation } = props const data = props.route.params.data

我是个新来的本地人。我已经创建了一个表单。但现在它并没有向服务器发送数据。当我点击提交按钮时。它不断地抛出这样的错误

 undefined is not an object (evaluating 'Amazon.trim')
所以我的代码有什么问题,请帮忙。 这是我的密码

export default function Add(props) {


  const { navigation } = props

  const data = props.route.params.data

   const amazonD =  data.service_details_data[0] ? data.service_details_data[0].amazon_name : ''

  const [AmazonError, setAmazonError] = useState([]);
  const [Amazon, setAmazon] = useState(undefined);

  const validateInputs = () => {

    if (!Amazon.trim()) {
      setAmazonError('Please Fill The Input')
      return;
    }
    else 
    {

        //+++++++++++++++++++++++++++++++++=submitting form data to api start+++++++++++++++++++++++++++++++++++
{
  
    const data = props.route.params.data
    const phpid = data.service_details_data[0] ? data.service_details_data[0].id : ''


    AsyncStorage.multiGet(["application_id", "created_by",'leadTagNumber']).then(response => {


  fetch('https://xyztech/Android_API_CI/uploaddata/merchant_service_details', {
      method: 'POST',
      headers: {'Accept': 'application/json, text/plain, */*', "Content-Type": "application/json" },
      // We convert the React state to JSON and send it as the POST body
      body: JSON.stringify([{ some data}])
    })
    .then((returnValue) => returnValue.json())
    .then(function(response) {
      console.log(response)
      Alert.alert("File uploaded");
      return response.json();
    });
  });
  // event.preventDefault();
  }
  //+++++++++++++++++++++++++++++++++submitting form data to api end++++++++++++++++++++++++++++++++++++++

      Alert.alert("success")
      return;
    }
  };

    const handleAmazon = (text) => {
    setAmazonError('')
    setAmazon(text)
    }
  

  return (
    <View style={{flex: 1}}>
          <ScrollView style={{flex: 1,}} showsVerticalScrollIndicator={false}>        

          <TextInput 
                        maxLength={30}
                        placeholder="Amazon *"
                        style={styles.inputStyle}
                        onChangeText={(text)=>handleAmazon(text)}
                        // value={Amazon}
                        defaultValue={amazonD}
                        value = {Amazon} />
                           <Text style={{color :'red'}}>{AmazonError}</Text>
     
         </ScrollView>
        <Button
          style={styles.inputStyleB}
          title="Submit"
          color="#FF8C00"
          onPress={() => validateInputs()}
        />
        </View>
  )
}
导出默认功能添加(道具){
常量{navigation}=props
常量数据=props.route.params.data
const amazonD=data.service\u details\u data[0]?data.service\u details\u data[0]。亚马逊名称:“”
const[AmazonError,setAmazonError]=useState([]);
const[Amazon,setAmazon]=useState(未定义);
常量validateInputs=()=>{
如果(!Amazon.trim()){
setAmazonError('请填写输入')
返回;
}
其他的
{
//+++++++++++++++++++++++++++++++++=将表单数据提交到api开始+++++++++++++++++++++++++++++++++++
{
常量数据=props.route.params.data
const phpid=data.service\u details\u data[0]?data.service\u details\u data[0]。id:“”
AsyncStorage.multiGet([“应用程序id”,“创建人”,“leadTagNumber]”)。然后(响应=>{
取('https://xyztech/Android_API_CI/uploaddata/merchant_service_details', {
方法:“POST”,
标题:{'Accept':'application/json,text/plain,*/*',“Content Type”:“application/json”},
//我们将React状态转换为JSON,并将其作为POST主体发送
正文:JSON.stringify([{some data}])
})
.then((returnValue)=>returnValue.json()
.然后(功能(响应){
console.log(响应)
Alert.Alert(“上传的文件”);
返回response.json();
});
});
//event.preventDefault();
}
//+++++++++++++++++++++++++++++++++向api端提交表单数据++++++++++++++++++++++++++++++++++++++
警惕。警惕(“成功”)
返回;
}
};
常量handleAmazon=(文本)=>{
setAmazonError(“”)
设置亚马逊(文本)
}
返回(
handleAmazon(文本)}
//值={Amazon}
defaultValue={amazonD}
value={Amazon}/>
{AmazonError}
validateInputs()}
/>
)
}

请忽略这一点=我是新手。我已经创建了一个表单。但现在它并没有向服务器发送数据。当我点击提交按钮时。它的持续抛出错误如下

看起来你在useState中将Amazon设置为未定义,然后尝试访问它。

是的,我正在创建两个值,一个是唯一值,第二个是默认值,当我提交表单,然后重新加载应用程序并打开此表单时,我会看到我以前提交的值,但现在如果我再次单击该按钮它的抛出错误是这样的,但当我更改所有值时,只有表单才会提交,但我希望,如果用户只更改一个值,那么表单也必须提交submitted@SohilShaikh我想它一定是字符串,因为你正在对它应用trim。空字符串(“”)可以工作。你可以使用空字符串,而不是检查trim,你可以使用if(!Amazon.length)所以,若用户在输入字段中输入了文本,那个么它一定有一定的长度。让我们来看看。
 undefined is not an object (evaluating 'Amazon.trim')