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')