如何更改输入反应本机的值

Posted

技术标签:

【中文标题】如何更改输入反应本机的值【英文标题】:How to change value of input react native 【发布时间】:2019-03-12 03:18:59 【问题描述】:

抱歉,我是 React Native 新手,想知道如何更改当前输入值?

在我的情况下,如果我直接输入一个新词,输入前一个词或值中的前一个值将继续出现而不改变或替换新的。

【问题讨论】:

你试过在输入元素中加入 onChangeText 事件吗? 【参考方案1】:

类组件:

将输入的值保持在包含此TextInput 组件的组件的状态中。

class ParentComponent extends React.Component 
  constructor (props) 
    super(props)
    this.state =  queryText: '' 
  

  handleInputTextChange = (newText) => 
    this.setState( queryText: newText )
  

  render () 
    return (<View>
      <TextInput 
        onChangeText=this.handleInputTextChange 
        value=this.state.queryText
      />
    </View>)
  

注意我是如何使用onChangeTexthandleInputTextChange 来处理新值的。

功能组件:

在功能组件中,我们使用钩子。要保存和更新文本值,我们使用useState

export default () => 
  const [text, setText] = useState("");

  return <TextView value=text onChangeText=setText />;
;

【讨论】:

他们再次破坏了TextInput.clear()(至少对于 ios,介于版本 0.61.5 和 0.65.1 之间),所以我花了半天时间试图找到解决方法。这对我有帮助,谢谢!【参考方案2】:

你好,你可以用这个方法:

this.state = 
  email: '13119165220',

onChangeText=text => this.setState( email: text ) 

【讨论】:

【参考方案3】:

在功能组件中使用

export default () => 

const [text,setText] = React.useState("")

return <TextView
          value=text
          onChangeText=setText />

【讨论】:

【参考方案4】:

TextInput 需要的值是要在 TextInput 中显示的值。

并且要更新您使用 onChangeText 的值,该值将在每次 TextInput 中的文本发生更改时调用您指定的任何函数。

根据你是学习带钩子还是不带代码的 React 会改变:

带钩子:

import React,useState from 'react'
//others import

function MyTextInput (props)
     const [userInput,setUserInput] = useState()
return (
   <TextInput 
        value = userInput
        onTextChange = (text) => setUserInput(text) /> //is always better call another function
    )                                                    // where you can validate the input

如果你使用类和编码没有钩子,逻辑是一样的,只是改变语法:

import React,Component from 'react'
//other imports
class MyTextInput extends Component
constructor(props)
   super(props)
   this.state = 
           userInput:''
   
render()
    return (
        <TextInput value = this.state.userInput 
             onChangeText =  text => this.setState(userInput:text) />
    )
  

这里是文档的链接,您可以在其中找到 TextInput 收到的所有带有说明的道具:https://reactnative.dev/docs/textinput

【讨论】:

以上是关于如何更改输入反应本机的值的主要内容,如果未能解决你的问题,请参考以下文章

如何将 TextInput 的值存储到本地存储并在应用程序以本机反应启动时获取它们?

如何在本机反应中为数组的每个元素分配相同的值。如何在本机反应中制作密钥对数组

如何在本机反应中动态更改zIndex?

如何更改反应本机按钮的背景颜色

如何在本机反应中更改获取响应的按钮文本?

如何在本机反应中从 json 获取数据?