当用户开始输入时,反应本机 TextInput 不清除默认值
React native TextInput not clearing default value when user start Typing
根据 React-Native 网站上的 docs:
defaultValue:提供一个初始值,该值将在用户开始键入时更改。对于您不想处理监听事件和更新 value 属性以保持受控状态同步的简单用例很有用。
但在 Android 中并非如此 API 16. 当我在我的应用程序中点击 textinput 组件时,默认值保留在那里并且没有被清除。
如何解决这个问题?难道我做错了什么?
我的代码:
<TextInput style={styles.input} defaultValue='Enter Password'/>
如何在用户开始输入时清除默认值?
您需要使用 onChangeText 和 value 属性设置新值
这是一个简单的例子:
<TextInput style={styles.input} defaultValue='Enter Password'
onChangeText={text => this.setState({input: text})} value={this.state.input}/>
据我了解,您要做的只是设置占位符,而不是默认值。你可以这样做。
<TextInput style={styles.input} placeholder='Enter Password' onChange={text => this.setState({input: text})} />
如果您有一个想要在屏幕加载后显示的初始值,并且您希望能够编辑该初始值并使用新值更新它。
首先,您必须使用值 属性 设置初始值,然后使用 onChangeText 将初始值更新为新值
<InputField
onChangeText={text => this.setState({value: text})}
value={this.state.value}
/>
在您的情况下,InputField 将是 TextInput
根据 React-Native 网站上的 docs:
defaultValue:提供一个初始值,该值将在用户开始键入时更改。对于您不想处理监听事件和更新 value 属性以保持受控状态同步的简单用例很有用。
但在 Android 中并非如此 API 16. 当我在我的应用程序中点击 textinput 组件时,默认值保留在那里并且没有被清除。 如何解决这个问题?难道我做错了什么? 我的代码:
<TextInput style={styles.input} defaultValue='Enter Password'/>
如何在用户开始输入时清除默认值?
您需要使用 onChangeText 和 value 属性设置新值
这是一个简单的例子:
<TextInput style={styles.input} defaultValue='Enter Password'
onChangeText={text => this.setState({input: text})} value={this.state.input}/>
据我了解,您要做的只是设置占位符,而不是默认值。你可以这样做。
<TextInput style={styles.input} placeholder='Enter Password' onChange={text => this.setState({input: text})} />
如果您有一个想要在屏幕加载后显示的初始值,并且您希望能够编辑该初始值并使用新值更新它。
首先,您必须使用值 属性 设置初始值,然后使用 onChangeText 将初始值更新为新值
<InputField
onChangeText={text => this.setState({value: text})}
value={this.state.value}
/>
在您的情况下,InputField 将是 TextInput