React Native - TextInput - 如何一起使用 value 和 defaultValue

作者:编程家 分类: reactjs 时间:2025-06-17

如何一起使用 value 和 defaultValue 在 React Native 的 TextInput 组件中

React Native 是一种开源的移动应用开发框架,可以使用 JavaScript 和 React 来构建原生移动应用。其中的 TextInput 组件是用于接收用户输入的一种基本组件。在使用 TextInput 组件时,我们常常会遇到需要在不同情况下设置初始值的需求。本文将介绍如何同时使用 value 和 defaultValue 属性来实现这一目的,并提供相关的案例代码。

在 React Native 中,TextInput 组件提供了两个属性来设置初始值:value 和 defaultValue。value 属性用于设置 TextInput 的当前值,而 defaultValue 属性用于设置 TextInput 的初始值。当用户输入时,value 属性会随之更新,而 defaultValue 属性则只在组件首次渲染时生效。

那么,如何同时使用这两个属性呢?下面我们通过一个简单的示例来演示。

首先,我们需要导入 TextInput 组件:

javascript

import { TextInput } from 'react-native';

然后,我们可以在组件的 state 中定义一个变量来保存用户输入的值:

javascript

state = {

inputValue: ''

}

接下来,在 render 函数中,我们可以使用 value 和 defaultValue 属性来设置 TextInput 的初始值:

javascript

render() {

return (

value={this.state.inputValue}

defaultValue="请输入内容"

onChangeText={text => this.setState({ inputValue: text })}

/>

);

}

在上面的代码中,我们将 value 属性设置为 this.state.inputValue,这样当用户输入时,TextInput 的值会随之更新。同时,我们将 defaultValue 属性设置为 "请输入内容",这样在组件首次渲染时,TextInput 会显示该初始值。

接下来,我们需要为 TextInput 添加一个 onChangeText 属性,用于监听用户输入的变化并更新 state 中的 inputValue 值。在 onChangeText 属性中,我们使用 this.setState 方法来更新 inputValue 的值。

这样,我们就可以同时使用 value 和 defaultValue 属性来实现 TextInput 的初始值和用户输入值的更新了。

示例代码:

javascript

import React, { Component } from 'react';

import { TextInput, View } from 'react-native';

class MyComponent extends Component {

state = {

inputValue: ''

}

render() {

return (

value={this.state.inputValue}

defaultValue="请输入内容"

onChangeText={text => this.setState({ inputValue: text })}

/>

);

}

}

export default MyComponent;

在本文中,我们学习了如何在 React Native 的 TextInput 组件中同时使用 value 和 defaultValue 属性来设置初始值和监听用户输入的变化。通过以上的示例代码,我们可以方便地实现 TextInput 的初始值和用户输入值的更新。希望本文能帮助到正在学习 React Native 的开发者们。