美文网首页
TextInput 的 onChangeText 监听回调的正确

TextInput 的 onChangeText 监听回调的正确

作者: 90后小伙 | 来源:发表于2018-08-09 13:06 被阅读15次

    TextInput 的 onChangeText 回调的两种写法

    //写法一
    onChangeText = {(newText) => this.updateNum(newText)}
    
    或
    
    //写法二(这种写法和写法一有很多不同的地方,请参照上边示例代码中写法2查看)
    onChangeText = {this.updateNum}
    

    里注意回调调用的写法,切记不可写成

     onChangeText = {this.updateNum(newText)}
    

    写法一

    import React, {Component} from 'react';
    import {
        Platform,
        StyleSheet,
        View,
        Text,
        TextInput,
        PixelRatio,
    } from 'react-native';
    
    const instructions = Platform.select({
        ios: 'Press Cmd+R to reload,\n' +
        'Cmd+D or shake for dev menu',
        android: 'Double tap R on your keyboard to reload,\n' +
        'Shake or press menu button for dev menu',
    });
    
    export default class App extends Component {
    
        constructor(props) {
            super(props);
    
            this.state = {
                inputedNum: '',//写法1
            };
        }
    
        updateNum(newText) {//写法1
            this.setState((state) => {
                return {
                    inputedNum: newText
                };
            });
        }
    
        render() {
    
            return (
                <View style={styles.container}>
                    {/*写法1*/}
                    <TextInput placeholder={'请输入账号'} onChangeText={(newText) => this.updateNum(newText)}/>
                    <Text>您输入的手机号:{this.state.inputedNum}</Text>
                </View>
            );
        }
    }
    
    const styles = StyleSheet.create({
        container: {
            flex: 1,
        }
    });
    

    写法二

    
    import React, {Component} from 'react';
    import {
        Platform,
        StyleSheet,
        View,
        Text,
        TextInput,
        PixelRatio,
    } from 'react-native';
    
    const instructions = Platform.select({
        ios: 'Press Cmd+R to reload,\n' +
        'Cmd+D or shake for dev menu',
        android: 'Double tap R on your keyboard to reload,\n' +
        'Shake or press menu button for dev menu',
    });
    
    export default class App extends Component {
    
        constructor(props) {
            super(props);
    
            this.state = {
                inputedPW: ''//写法2
            };
            this.updatePW = this.updatePW.bind(this);//写法2
        }
    
        updatePW(newText) {//写法2
            this.setState(() => {
                return {
                    inputedPW: newText
                };
            });
        }
    
        render() {
    
            return (
                <View style={styles.container}>
                    {/*写法2*/}
                    <TextInput placeholder={'请输入密码'} secureTextEntry={true} onChangeText={this.updatePW}/>
                </View>
            );
        }
    }
    
    const styles = StyleSheet.create({
        container: {
            flex: 1,
        }
    });
    

    相关文章

      网友评论

          本文标题:TextInput 的 onChangeText 监听回调的正确

          本文链接:https://www.haomeiwen.com/subject/rliqbftx.html