1.商品列表搜索框

2.搜索框页面的结构为

  1. <div className="row search-wrap">
  2.               <div className="col-md-12">
  3.                   <div className="form-inline">
  4.                       <div className="form-group">
  5.                           <select className="form-control"
  6.                               name="searchType"
  7.                              onChange={(e) => this.onValueChange(e)}>
  8.                               <option value="productId">按商品ID查询</option>
  9.                               <option value="productName">按商品名称查询</option>
  10.                           </select>
  11.                       </div>
  12.                       <div className="form-group">
  13.                           <input type="text"
  14.                               className="form-control"
  15.                               placeholder="关键词"
  16.                               name="searchKeyword"
  17.                               onKeyUp={(e) => this.onSearchKeywordKeyUp(e)}
  18.                               onChange={(e) => this.onValueChange(e)}/>
  19.                       </div>
  20.                       <button className="btn btn-primary"
  21.                           onClick={(e) => this.onSearch()}>搜索</button>
  22.                   </div>
  23.               </div>
  24.           </div>

3.  State里边定义数据

  1. this.state = {
  2.            searchType : 'productId',
  3.            searchKeyword : ' '
  4.        }

分别给select标签和input输入框设置 onChange事件,监听选择框和输入框的变化,变化时执行onValueChange函数,传入参数e, 更state里边searchType和searchkeyword的值

  1. // 数据变化的时候
  2.     onValueChange(e){
  3.        let name = e.target.name,
  4.            value = e.target.value.trim();
  5.        console.log(name)
  6.        console.log(value)
  7.        this.setState({
  8.            [name] : value
  9.        });
  10.    }

监听键盘事件onKeyUp,当按下enter键时触发

  1. // 输入关键字后按回车,自动提交
  2.     onSearchKeywordKeyUp(e){
  3.         if(e.keyCode === 13){
  4.             this.onSearch();
  5.         }
  6.     }

4.点击查询的时候,执行onSearch()函数, onSearch函数在商品列表组件里边定义,通过prop参数传过来,listSearch组件提供searchType和searchkeyword即可

  1. // 点击搜索按钮的时候
  2.     onSearch(){
  3.        this.props.onSearch(this.state.searchType, this.state.searchKeyword);
  4.    }

l istSearch组件

  1. <ListSearch onSearch={(searchType, searchKeyword) => {this.onSearch(searchType, searchKeyword)}} />

onSearch()函数

  1. //搜索
  2.    onSearch(searchType, searchKeyword){
  3.        let listType=searchKeyword ==='' ? 'list': 'search';
  4.        this.setState({
  5.            listType : listType,
  6.            pageNum : 1,
  7.            searchType : searchType,
  8.            searchKeyword : searchKeyword
  9.        }, () => {
  10.            this.loadProductList();
  11.        })
  12.    }

React后台管理系统-商品列表搜索框listSearch组件的更多相关文章

  1. React后台管理系统-商品管理列表组件

    1.商品列表页面结构 <div id="page-wrapper">              <PageTitle title="商品列表" ...

  2. React后台管理系统-用户列表页面

    1.页面的结构 //遍历list, 返回数据       let listBody= this.state.list.map((user,index)=> {           return ...

  3. 《React后台管理系统实战 :三》header组件:页面排版、天气请求接口及页面调用、时间格式化及使用定时器、退出函数

    一.布局及排版 1.布局src/pages/admin/header/index.jsx import React,{Component} from 'react' import './header. ...

  4. React后台管理系统-订单管理

    1.订单管理页面和商品管理页面类似,都是一个搜索组件+列表组件 2.搜索框search组件 import React from 'react';   class ListSearch extends ...

  5. 修改ECSHOP后台的商品列表里显示该商品品牌

    如何在在ECSHOP后台的商品列表中也显示商品的品牌”.下面就来最模板讲一下如何来修改.此方法只保证在ECSHOP2.7.2版本下有效,其他版本请参照修改. 第一步:首先我们来打开程序文件: /adm ...

  6. 《React后台管理系统实战 零》:基础笔记

    day01 1. 项目开发准备 1). 描述项目 2). 技术选型 3). API接口/接口文档/测试接口 2. 启动项目开发 1). 使用react脚手架创建项目 2). 开发环境运行: npm s ...

  7. 【共享单车】—— React后台管理系统开发手记:主页面架构设计

    前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...

  8. React后台管理系统-table-list组件

    table-list组件可用于商品列表,用户列表页面 需要传入一个tableHeads集合和tablebody import React from 'react';   // 通用的列表 class ...

  9. 《React后台管理系统实战 :一》:目录结构、引入antd、引入路由、写login页面、使用antd的form登录组件、form前台验证、高阶函数/组件

    实战 上接,笔记:https://blog.csdn.net/u010132177/article/details/104150177 https://gitee.com/pasaulis/react ...

随机推荐

  1. mac上gradle升级版本

    参考:https://www.jianshu.com/p/9fa9d2b4dbc9    http://www.gradle.org/downloads下载gradle 终端输入:open .bash ...

  2. 跳坑 小程序swiper组件 轮播图片 右边空白问题

    swiper 组件 设置轮播图片时,右侧会出现空白的情况:是因为 swiper组件有默认的 高度和宽度,所以我们在设置图片高度和宽度的同时, 也要为 设置高度和宽度,和高度和宽度样式一样的就可以.

  3. php魔术常量、超全局变量、魔术方法

    一.魔术常量(魔术变量) 概念:所谓的魔术常量就是PHP预定义的一些常量,这些常量会随着所在的位置而变化. 1.__LINE__  获取文件中的当前行号. 2.__FILE__  获取文件的完整路径和 ...

  4. linux下apache无法启动之(httpd not running, trying to st)

    这突然接手的服务器,本来是没什么事的,可是因为机房的问题,需要将服务器迁回来,结果可想而知,关机重启了,其中有一台估计诚心给我过不去,待配置好ip并重启了服务后,发现apache无法正常启动了! 先还 ...

  5. LeetCode初级算法(其他篇)

    目录 缺失数字 位1的个数 颠倒二进制位 有效的括号 汉明距离 帕斯卡三角形 缺失数字 最初的想法是将0到n全部加起来,再减去输入的数字之和,那么差如果非零的话就是我们所需要的数字.但是一想,可能会发 ...

  6. nagios部署配置流程

    nagios部署配置流程 nagios服务端:1.部署nagios服务端(参考nagios官方部署文档).nagios-plugin.php.apache2 2.需要在服务端添/etc/hosts中添 ...

  7. 自动检测GD库支持的图像类型

    以下代码通过自动检测GD库支持的图像类型 来写出移直性更好的PHP代码 <?php if(function_exists("imagegif")){ header(" ...

  8. ACM-ICPC 2018 南京赛区网络预赛 J sum (找一个数拆成两个无平方因子的组合数)

    题目大意:就是找一个数拆成两个无平方因子的组合数,然后求个前缀和  ; 分析:运用筛法的思想 ,  因为有序对是由两个合法的数字组成的,所以只要保证第一个数合法,第二个数也合法就行,找出合法的第二个数 ...

  9. 统计分析: 跨库多表join

    mysql中如果多个库在一个实例上, 可以进行多表的跨库Join, 但是如果后期数据库分隔到不同的实例机器上,有查询问题 mysql的查询优化器没有其他商业数据库做的好, 用来CRUD还行, 但是做大 ...

  10. FTP服务器windows配置

    1.配置IIS Web的FTP站点 1.1 打开iis管理器(方法很多,这里我们用命令) Win+r中输入:inetmgr 1.2 新建FTP站点 1.2.1 新建FTP服务器根目录文件夹 1.2.2 ...