React native 反应本机输入不允许编辑值
我使用native base创建了一个输入,但无法编辑该值。它始终显示相同的值React native 反应本机输入不允许编辑值,react-native,native-base,React Native,Native Base,我使用native base创建了一个输入,但无法编辑该值。它始终显示相同的值 render() { const { FirstName, LastName, Email, Phone, Unit, MiddleName } = this.state.MyData; ... <Input value={LastName} onChangeText={val => this.setState({ LastNam
render() {
const {
FirstName, LastName, Email, Phone, Unit, MiddleName
} = this.state.MyData;
...
<Input
value={LastName}
onChangeText={val => this.setState({ LastName: val })}
style={styles.valueText}
/>
...
render(){
常数{
名字、姓氏、电子邮件、电话、单位、中间名
}=this.state.MyData;
...
this.setState({LastName:val})}
style={style.valueText}
/>
...
它的值为“Smith”。当我点击输入时,它不允许我删除或添加字符
谢谢您不是在更新对象,而是在状态中添加一个新值,在输入值中键入一个值后,您的状态变为
state = {
MyData: {...},
LastName: ...
}
改为更新对象
onChangeText = (text, input) => {
const obj = { ...this.state.MyData };
obj[input] = text;
this.setState({
MyData: obj
})
};
<Input
value={LastName}
onChangeText={(text) => this.onChangeText(text, 'LastName')}
style={styles.valueText}
/>
onChangeText=(文本,输入)=>{
const obj={…this.state.MyData};
obj[输入]=文本;
这是我的国家({
MyData:obj
})
};
this.onChangeText(文本“LastName”)}
style={style.valueText}
/>
现在您可以使用代码了
import React, { Component } from 'react';
import { AppRegistry, TextInput } from 'react-native';
export default class UselessTextInput extends Component {
constructor(props) {
super(props);
this.state = { text: 'Useless Placeholder' };
}
render() {
return (
<TextInput
style={{height: 40, borderColor: 'gray', borderWidth: 1}}
onChangeText={(text) => this.setState({text})}
value={this.state.text}
/>
);
}
}
import React,{Component}来自'React';
从“react native”导入{AppRegistry,TextInput};
导出默认类UselessTextInput扩展组件{
建造师(道具){
超级(道具);
this.state={text:'无用占位符'};
}
render(){
返回(
this.setState({text})}
值={this.state.text}
/>
);
}
}
您没有更新对象this.state.MyData
但是LastName
是否有方法使此onChangeText可重用?我,我想用它来表示姓氏,姓氏,电子邮件…@myTest532myTest532是的,请查看我的更新答案。更改函数以获取第二个参数,这将是您要更改的属性。谢谢。成功了。请看一看我的零食:为什么它会在一种食物和另一种食物之间创造一个巨大的空间。另外,当我单击“编辑一个字段”时,它会删除第一个字母。@JuniusL。当我尝试这个时,我得到了这个2。当我尝试更改值时,onChangeText不是一个函数。