如何在本机中获得输入值?

时间:2017-01-15 05:19:46

标签: reactjs react-native react-router

您能告诉我如何获得import React from 'react'; import { registerComponent, } from 'react-native-playground'; import { Text, View, Image, StyleSheet, TextInput, TouchableHighlight } from 'react-native'; class App extends React.Component { constructor(props){ super(props); this.state ={ userName :'', password:'' }; } login(){ alert(this.state.userName) } OnChangesValue(e){ console.log(e.nativeEvent.text); this.setState({ userName :e.nativeEvent.text, }) } changePassword(e){ console.log(e.nativeEvent.text); this.setState({ password :e.nativeEvent.text, }) } render() { return ( <View style={styles.container}> <Text style={styles.heading}> Login</Text> <TextInput style={styles.loginInput} onChange={(text)=> this.setState({userName:text})} ref="myInput" underlineColorAndroid='transparent' placeholder="username !" /> <TextInput style={styles.loginInput} ref="pass" onChange={this.changePassword.bind(this)} underlineColorAndroid='transparent' placeholder="password to ff!" secureTextEntry={true} /> <TouchableHighlight style={styles.touchable} onPress={this.login.bind(this)}> <Text style={styles.touchableButton}>Click</Text> </TouchableHighlight> </View> ) } } const styles = StyleSheet.create({ container: { backgroundColor: '#EF501E', flex: 1, alignItems: 'center', padding :20 }, logo: { width: 50, height: 50 }, heading: { fontSize: 30, marginTop: 20 }, loginInput: { height: 50, alignSelf: 'stretch', borderWidth: 1, borderColor: '#33090C', flexDirection: 'row', justifyContent: 'center', marginBottom:10 }, touchable:{ backgroundColor:'#2E18DD', height:40, alignSelf:'stretch', alignItems:'center', justifyContent:'center' }, touchableButton:{ color:'#fff', fontSize:10 } }); registerComponent(App); 值,或者换句话说,按钮点击时输入用户名和密码字段值。

这是我的代码 https://rnplay.org/apps/drT9vw

login(){
        alert(this.refs.myInput.value)
    }

更新

 import java.io.*;
 import java.util.Scanner;

 public class ScanXan {
  public static void main(String[] args) throws IOException {

    Scanner s = null;

    try {
        s = new Scanner(new BufferedReader(new FileReader("<file name>")));

        while (s.hasNext()) {
            System.out.println(s.next());
           <write for output file>
        }
    } finally {
        if (s != null) {
            s.close();
        }
    }
 }
}

它给出了未定义的

2 个答案:

答案 0 :(得分:0)

可以通过两种方式完成。如果输入字段受控制,您可以从状态本身获取值。如果出现不受控制的输入字段(您的情况),您可以使用refs获取输入值

login() {
    console.log(this.refs.myInput.value)
} 

答案 1 :(得分:0)

没有得到确切的问题,你将userName和密码存储在状态变量中。因此,您可以按this.state.userNamethis.state.password获取值。或者你也可以使用refs来得到这样的值:this.refs.myInput.value

改变这种乐趣:

changePassword(text){
    console.log(text);
    this.setState({
        password :text,
    })
}

检查tutorialspoint上的相同示例:https://www.tutorialspoint.com/react_native/react_native_text_input.htm