如何检索文本输入在按钮上输入的值单击React Native中的onPress?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何检索文本输入在按钮上输入的值单击React Native中的onPress?相关的知识,希望对你有一定的参考价值。

我是React Native的新手,我无法逐个检索我在textInput上输入的内容。

示例:如果我输入了一些名称,它应该逐个出现......

  state = {
    name: "",
    showName: false
  };

  buttonClickListner = e => {
    const { showName } = this.state;

    this.setState({ showName: true });
  };

  render() {
    const { name } = this.state;
    return (
        <TextInput
          style={{ height: 150 }}
          placeholder="Enter a Name...."
          value={name}
          onChangeText={val => {
            this.setState({
              name: val
            });
          }}
        />
        <Button
          onPress={this.buttonClickListner}
          title="Submit"
          color="#008000"
        />
        <Text>{(showName = true ? name : null)}</Text>    
  );
  }
}
答案

我做了你需要的。无论你在TextInput中输入什么,都需要一个名称序列,但是使用字符串是不可能的。您需要使用数组来显示您要输入的所有值。

export default class App extends React.Component {
   state = {
    name: [],
    showName: false,
    text:""
  };

  buttonClickListner = e => {
    this.state.name.push( this.state.text.toString() );
    this.setState({text:""})
  };
  render() {
    const { name } = this.state;
    return (
      <View>
        <TextInput
          style={{ height: 150 }}
          placeholder="Enter a Name...."
          value={this.state.text}
          onChangeText={val => {
            this.setState({
              text: val
            });
          }}
        />
        <Button
          onPress={this.buttonClickListner}
          title="Submit"
          color="#008000"
        />
        {this.state.name.length>0?this.state.name.map(item=>(<Text>{item}</Text>)):null} 
        </View>
  );
}
}
另一答案

以下是我看到的一些观点:

  • 首先,你应该返回一个返回的单个根或带有片段的多个元素(读取片段here)。所以将它们全部包装在一些标签中,比如//你的组件等。
  • 您在showName = true中分配而不是检查。使用showName === true?句法。

完整的代码和runnig sample

import * as React from 'react';
import { Button, TextInput, Text, View} from 'react-native';

export default class App extends React.Component{
  state = {
      name: "",
      showName: false
    };

  buttonClickListner = e => {
    const { showName } = this.state;
    this.setState({ showName: true });
  };

  render() {
    const { name, showName } = this.state;
    return (
        <View>
          <TextInput
            style={{ height: 150 }}
            placeholder="Enter a Name...."
            value={name}
            onChangeText={val => {
              this.setState({
                name: val
              });
            }}
          />
          <Button
            onPress={this.buttonClickListner}
            title="Submit"
            color="#008000"
          />
          <Text>{(showName === true ? name : null)}</Text>   
        </View> 
      );
  }
}

以上是关于如何检索文本输入在按钮上输入的值单击React Native中的onPress?的主要内容,如果未能解决你的问题,请参考以下文章

设计一个程序,在文本框中输入一个3位整数,单击按钮后,在标签上输出该数的百位数、十位数和个位数

如何在 React Js 中编辑输入值?

单击Android Studio中的提交按钮后,如何将输入的值存储到变量并在屏幕上显示?

如何在单击按钮时获取表格视图单元格中文本字段的值?

在iphone中单击按钮时如何将文本字段/标签中的值添加到数组中

React Native TextInput 不允许输入/文本更改