我想将所有输入字段的值保存到getdata()
,但得到的值未定义
export default function Signupfor(props) {
// const phoneInput = useRef < PhoneInput > null;
const [text, setTextname] = useState();
function getdata() {
console.log('dsd');
console.log(text);
}
const {userInfo, log} = props?.route?.params;
console.log(log.name);
return (
<View style={styles.prheight}>
<View style={styles.form}>
<Text style={styles.r}>One Last Step</Text>
<TextInput
style={styles.forminput}
label="Name"
value={userInfo.user.name}
onChangeText={text => setTextname(text)}
/>
<TextInput
style={styles.forminput}
label="Email"
value={userInfo.user.email}
onChangeText={text => setTextemail(text)}
/>
<TextInput
style={styles.forminput}
label="Whatsapp Number"
keyboardType="numeric"
value={userInfo.user.number}
onChangeText={text => setTextnumber(text)}
// value={this.state.myNumber}
maxLength={10} //setting limit of input
/>
</View>
<View style={styles.buttonw}>
<Button color="#7743DB" title="Lets Go" onPress={() => getdata()} />
</View>
</View>
);
}
这里,name
和email
应该是不能编辑的。
4条答案
按热度按时间vi4fp9gy1#
您可以使用formik包在react native中制作表单
安装
用法
yzckvree2#
除非编辑文本输入字段,否则原始方法不会填充状态,这是因为initialState没有起始值。因此,如果字段没有更改,则触发
getData()
将阅读空状态。onChangeText={text => setTextname(text)}
仅在编辑textInput字段时触发。另外,我认为您可能丢失了一些 prop ,因此首先检查您是否通过记录从
props
获得了正确的数据。确认 prop 可用后。
将名称的initialState设置为
userInfo.user.name
然后将状态
name
传递给TextInput,它应该通过从状态中阅读来填充值。确保为要保存的任何其他值创建状态。
55ooxyrt3#
你可以这样做!!
email
也是如此。pieyvz9o4#
您可以使用https://react-hook-form.com之类的库来检查react native on video的示例。或者您也可以自己校正它,在下面的示例中,任何时候您需要访问输入值时,都可以从
text
和number
中读取它