【问题标题】:React native TextInput not clearing default value when user start Typing用户开始打字时反应本机TextInput不清除默认值
【发布时间】:2017-07-31 20:04:06
【问题描述】:

根据 React-Native 网站上的docs

defaultValue:提供一个初始值,当用户开始输入时该值会改变。对于您不想处理监听事件和更新 value 属性以保持受控状态同步的简单用例很有用。

但在 Android API 16 中并非如此。当我在我的应用程序中点击 textinput 组件时,默认值仍然存在并且不会被清除。 如何解决这个问题?难道我做错了什么? 我的代码:

<TextInput style={styles.input} defaultValue='Enter Password'/>

用户开始输入时如何清除默认值?

【问题讨论】:

    标签: react-native hybrid-mobile-app react-native-android


    【解决方案1】:

    您需要使用 onChangeText 和 value prop 设置新值

    这是一个简单的例子:

    <TextInput style={styles.input} defaultValue='Enter Password' 
    onChangeText={text => this.setState({input: text})} value={this.state.input}/>
    

    【讨论】:

      【解决方案2】:

      据我了解,您要做的只是设置占位符,而不是默认值。你可以这样做。

      <TextInput style={styles.input} placeholder='Enter Password' onChange={text => this.setState({input: text})} />
      

      【讨论】:

      • 感谢您的回答。
      【解决方案3】:

      如果您想要在屏幕加载后显示一个初始值,并且您希望能够编辑此初始值并使用新值更新它。

      首先,你必须使用 value 属性设置初始值,然后使用 onChangeText 将初始值更新为新值

      <InputField
                onChangeText={text => this.setState({value: text})}
                value={this.state.value}
              />
      

      在你的情况下 InputField 将是 TextInput

      【讨论】:

        猜你喜欢
        • 2021-01-25
        • 1970-01-01
        • 2022-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多