带值的 TextInput 不会改变值

Mar*_*ane 7 javascript textinput react-native

在我的 react-native 应用程序中,我有一个从中检索数据的 API,并且我在输入值中设置数据,用户应该能够编辑这些输入并进行更新,但是当我尝试输入输入时它不会输入任何内容并且值保持原样,这是 TextInput 代码:

<TextInput
   placeholder= Email
   value={this.state.info.email}
   onChangeText={email => this.setState({ email })}/>
Run Code Online (Sandbox Code Playgroud)

Dus*_*ler 10

我遇到了同样的问题,直到我将value道具更改为defaultValue这样:

<TextInput
   style={styles.inputBox}
   onChangeText={title => this.setState({ title })}
   defaultValue={this.state.title}
   placeholder='Title'
/>
Run Code Online (Sandbox Code Playgroud)

我在 React 的文档中找到了这个信息


Mil*_*ore 6

由于我不认为电子邮件是您的唯一道具,因此state.info我建议您setState()正确使用,以便仅修改该字段。根据不变性和 ES6,类似于:

<TextInput
  placeholder="Email"
  value={this.state.info.email}
  onChangeText={text =>
    this.setState(state => ({
      info: {
        ...state.info,
        email: text
    }))
  }
/>;
Run Code Online (Sandbox Code Playgroud)

在此处阅读有关处理的更多信息TextInput