React-Native之TextInput组件的设置以及如何获取输入框的内容

 更新时间:2023年05月11日 10:38:45   作者:TimePawnshop.  
这篇文章主要介绍了React-Native之TextInput组件的设置以及如何获取输入框的内容问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

React-Native TextInput组件的设置以及获取输入框的内容

这两天在学习React-Native的内容,发现RN的input框和原生input有些区别,特意写下来供小伙伴们参考。

众所周知,原生的input输入框,只要我们写了input标签,它就带有一些默认样式并展现出来,然而RN中的却什么样式也没有,需要自己手动的把样式添加上去才可以显现。

好了,废话不多说,开始上代码~

这里我们用到的RN组件:

  • StyleSheet:RN的样式组件
  • Text:显示文本组件
  • View:是一个支持flexbox布局等的展示容器
  • TextInput:编辑文本的组件

当然了,操作这些肯定是需要一定的环境的,比如node和XCode等等,本文不做赘述。

本文还是主要介绍怎么在RN中展示一个input框,及获取其内容:

TextInput组件的内容部分:
class Myinput extends Component{
    constructor(props){
        super(props);
        this._onChangeText = this._onChangeText.bind(this);
        this.state = {
            showValue:"",
        }
    }
    _onChangeText(inputData){
        console.log("输入的内容",inputData);
        //把获取到的内容,设置给showValue
        this.setState({showValue:inputData});
    }
    showData(){
        alert(this.state.showValue);//展示输入框的内容
    }
    render(){
        return (<View style={styles.mycontainer}>
                    <TextInput
                        placeholder="请输入用户名"
                        editable={true}//是否可编辑
                        style={styles.inputStyle}//input框的基本样式
                        onChangeText={this._onChangeText}//输入框改变触发的函数
                    />
                    <TouchableOpacity onPress={this.showData.bind(this)}>
                        <View style={styles.btn}>
                            <Text style={styles.wordC}>搜索</Text>
                        </View>
                    </TouchableOpacity>
                </View>)
    }
}
const styles = StyleSheet.create({
    mycontainer:{
      marginTop:30,
        flexDirection:"row",
    },
    inputStyle:{
        width:280,
        height:30,
        borderColor:"black",
        borderWidth:1,
        marginLeft:5,
    },
    btn:{
        width:85,
        height:30,
        justifyContent:"center",
        alignItems:"center",
        backgroundColor:"green",
        // borderRadius:5
    },
    wordC:{
        color:"white",
        fontSize:18,
    }
})

React-Native自定义TextInput样式

在react-native中,其实提供的TextInput样式已经非常强大了,但是事实上有时候我们可能需要自己订制一个样式已满足我们的需求,比如这种

所以这篇就是介绍如何去订制。

如果我们只是把一个默认的TextInput拉出来,会长成这样最下面这样

分析一下,我们需要去除下划线,把背景设置成白色,同时可以略微调整一下字体大小。

所以给TextInput添加一个style样式

<TextInput
    style={styles.edit}
    underlineColorAndroid='transparent'/>
edit: {
        marginTop: 30,
        height: 40,
        fontSize: 20,
        backgroundColor: '#fff'
    },

为了和上面的控件留有一定的距离,我们可以加一个marginTop属性。

这样,现在的输入框就变成了这个样式了。

离我们的目标还差一点,现在的问题是,虽然我们移除了下划线,但是文字的部分始终顶在控件的上面。可能会想到用flex布局来调整位置,不过flex布局是针对其子控件的,在这里TextInput是一个整体控件,文字部分不属于它的子控件。所以,既然里面不能调整,我在外面调整总行了吧。

所以,我们可以套一个万能的View控件,把这个TextInput放到View的底部,设置View的高度大于TextInput的高度,这样多出来的高度就可以弥补上面没有的空隙啦。同时记得把View也设置成白色就Ok了。

<View style={styles.view}>
    <TextInput      
        style={styles.edit}
        underlineColorAndroid='transparent'/>
</View>
    edit: {
        height: 40,
        fontSize: 20,
        backgroundColor: '#fff',
        marginLeft: 10,  //左右留出一定的空间
        marginRight: 10
    },
    view: {
        flex: 1,
        marginTop: 10,
        backgroundColor: '#fff',
        height: 51,    //通过大于TextInput的高度来弥补上面的问题
        justifyContent: 'flex-end'  //放置到底部
    }

看代码就可以很明白了吧,最后为了更加协调和美观,可以给TextInput左右两边添加margin值,这样文字就不会直接抵在最边上了。

好了,有了一个这样的思路,相信大家就可以自己订制自己需要的样式了。最后来一句,一定要用好View控件!!!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 在react中使用mockjs的方法你知道吗

    在react中使用mockjs的方法你知道吗

    这篇文章主要为大家详细介绍了在react中使用mockjs的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • 详解React中合并单元格的正确写法

    详解React中合并单元格的正确写法

    用表格进行页面布局,页面布局在各种浏览器的的兼容性, 本文主要介绍了详解React中合并单元格的正确写法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • React-Native中一些常用组件的用法详解(二)

    React-Native中一些常用组件的用法详解(二)

    这篇文章主要跟大家介绍了关于React-Native中一些常用组件的用法的相关资料,其中详细介绍了关于ScrollView组件、ListView组件、Navigator组件、TableBarIOS组件以及网络请求等相关内容,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-06-06
  • React中前端路由的示例代码

    React中前端路由的示例代码

    本文主要介绍了React中前端路由的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • React中关于render()的用法及说明

    React中关于render()的用法及说明

    这篇文章主要介绍了React中关于render()的用法及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • React-Hook中使用useEffect清除定时器的实现方法

    React-Hook中使用useEffect清除定时器的实现方法

    这篇文章主要介绍了React-Hook中useEffect详解(使用useEffect清除定时器),主要介绍了useEffect的功能以及使用方法,还有如何使用他清除定时器,需要的朋友可以参考下
    2022-11-11
  • React中使用antd组件的方法

    React中使用antd组件的方法

    antd 是基于 Ant Design 设计体系的 React UI 组件库,主要用于研发企业级中后台产品,这篇文章主要介绍了React中使用antd组件,需要的朋友可以参考下
    2022-09-09
  • React获取Java后台文件流并下载Excel文件流程解析

    React获取Java后台文件流并下载Excel文件流程解析

    这篇文章主要介绍了React获取Java后台文件流下载Excel文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • React组件重构之嵌套+继承及高阶组件详解

    React组件重构之嵌套+继承及高阶组件详解

    这篇文章主要给大家介绍了关于React组件重构之嵌套+继承及高阶组件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • 详解React中共享组件逻辑的三种方式

    详解React中共享组件逻辑的三种方式

    这篇文章主要介绍了详解React中共享组件逻辑的三种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02

最新评论