react-async/await -antd-InputItem 输入框用法

简介: 1.antd-mobile2.这里使用antd的移动端框架antd-mobile来分析下 react中的输入框具体用法

1. 前言


1.antd-mobile

2.这里使用antd的移动端框架antd-mobile来分析下 react中的输入框具体用法


2. render


2.1 按需引入需要的组件


import { List, InputItem, Button, WingBlank, WhiteSpace } from 'antd-mobile'

2.2 分析

1.List 简单说就是白底的容器

2.InputItem 输入框

3.Button 按钮

4.WingBlank    2翼留白 双标签

5.WhiteSpace  上下留白 单标签

2.3 render代码


<div>
       <List >
                        <WingBlank>
                            <InputItem placeholder="请输入"
                                labelNumber={20}
                                value={searchValue}
                                onChange={this.onChange}
                                clear
                            />
                            <WhiteSpace />
                            <Button type="primary" size="small"
                                   disabled={isDisabled}
                                 onClick={() => {
                                this.searchSub()
                            }}>提交</Button></WingBlank>
                        <WhiteSpace />
                    </List>
</div>


2.4分析 InputItem

1.clear 输入框后边会有个 x清空按钮

2.labelNumber  标签的文字个数

3.onChange change 事件触发的回调函


3. onChange 事件


1.react没有vuev-model

2.需要在change事件获取用户输入的值,事件参数就是用户输入的值

3.界面需要更改 必须通过setState()函数来修改

4.react就是实现了 类似vue的双向绑定


// 搜索框change事件
    // react 没有 v-model 
  onChange = (value) => {
        // console.log("输入内容:", value)
        this.setState({
            searchValue: value,
        })
        if (value.length < 1) {
            // 为空 提交按钮 不可点击
            this.setState({
                isDisabled: true,
                hasError: true,
            })
            Toast.info("不能为空")
        } else {
            this.setState({
                isDisabled: false,
                hasError: false,
            })
        }
    }


5.state可以写到构造函数constructor外部,但是名字必须是state


state = {
        searchValue: "",
        listData: [],
       isDisabled: true,
        hasError: false
    }



4. 请求需要获取 输入框的值


4.1 核心代码


// 搜索请求
    async searchRequest() {
        let { cityId } = this.props.match.params
        let { searchValue } = this.state
        let params = {
            city_id: cityId,
            keyword: searchValue
        }
        // async  await
        // await 必须放在 async 里面使用
        try {
            let searchResult = await axios.get("/test/user", { params })
            return searchResult
        } catch (error) {
            console.log("搜索错误信息:", error)
        }
    }


4.2 分析

1.cityId是通过路由跳转 动态绑定的参数

2.searchValue就是解构出来的输入框的值

3.await t规定必须放在 async的函数中

4.async用来搞异步函数

5.其实这个 awaitPromise中就简单理解为脱掉一层then的壳就行


5. 提交事件


  1. 按钮点击的提交事件

5.1 核心代码


//**** 提交事件
    async searchSub() {
        let result = (await this.searchRequest()).data
        // this.state.listData = result 错误的写法 XXX
        this.setState({
            listData: result,
            // 提交完 输入框清空
            searchValue: "",
            isDisabled: true
        })
    }


5.2 分析

1.async/await语法

2.setState修改函数




相关文章
react-withRouter 用法
react-withRouter 用法
124 0
|
2月前
|
前端开发 算法 JavaScript
React项目input输入框输入自动失去焦点
本文讨论了在React项目中如何处理input输入框自动失去焦点的问题,特别是在移动端开发中。文章提供了一个使用React Native的TouchableWithoutFeedback组件来监听点击事件,并在事件处理函数中通过调用Keyboard.dismiss()方法使输入框失去焦点的示例代码。这种方法可以确保在用户点击页面其他区域时,键盘能够收起,输入框失去焦点。
64 1
React项目input输入框输入自动失去焦点
|
2月前
|
前端开发 JavaScript 数据安全/隐私保护
React实现添加多行输入框(点击一行增加一行)
React中实现点击按钮动态添加多行输入框,通过维护一个状态数组并在每次点击时更新数组来控制输入框的增加,每行输入框对应数组中的一个对象。
52 1
|
3月前
|
缓存 JavaScript 前端开发
react.js高级用法
【8月更文挑战第27天】react.js高级用法
37 2
|
3月前
|
Web App开发 监控 前端开发
React 性能监测工具大揭秘!Chrome DevTools 高级用法来袭,让你的 React 应用性能飙升!
【8月更文挑战第31天】在前端开发中,React 框架虽简化了高效、交互性强的用户界面构建,但应用复杂性增加亦可能引发性能问题。此时,Chrome DevTools 凭其性能面板成为了优化应用性能的重要工具,能帮助开发者记录与分析加载时间、渲染及脚本执行等性能指标,定位并解决性能瓶颈。同时,其 React 开发者扩展工具允许实时监控组件状态变化,进一步提升性能。结合运用这些功能,将有助于打造流畅的用户体验。
90 0
|
4月前
|
JavaScript 前端开发
react18【系列实用教程】双向绑定表单 (2024最新版)含受控组件、非受控组件、单行多行输入框 input,下拉选择 select,单选 radio,多选 checkbox,标签 label
react18【系列实用教程】双向绑定表单 (2024最新版)含受控组件、非受控组件、单行多行输入框 input,下拉选择 select,单选 radio,多选 checkbox,标签 label
148 1
|
5月前
|
存储 前端开发
react如何拿输入框的值
react如何拿输入框的值
67 3
|
6月前
|
前端开发 JavaScript
在React中,如何通过事件处理函数来管理输入框的获取和失去焦点行为?
【5月更文挑战第28天】在React中,如何通过事件处理函数来管理输入框的获取和失去焦点行为?
258 1
|
6月前
|
前端开发 UED
React 防抖与节流用法
React 防抖与节流用法
168 0
|
6月前
|
前端开发 JavaScript
react中refs的作用是什么?有几种用法?
react中refs的作用是什么?有几种用法?