React native 反应本机输入不允许编辑值

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

我使用native base创建了一个输入,但无法编辑该值。它始终显示相同的值

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不是一个函数。