zoukankan      html  css  js  c++  java
  • react ant design中下拉表单实现双向联动

    上面是数据结构以及效果图

    下面是实现代码:

    1.react的写法

    <Col span={5} style={{ padding: '0 5px' }}>
                                        <FormItem>
                                            {getFieldDecorator('brandValue')(
                                                <Select
                                                    allowClear
                                                    showSearch
                                                    style={{ '100%' }}
                                                    placeholder="品牌"
                                                    optionFilterProp="children"
                                                    onChange={this.brandChange}
                                                    filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
                                                >
                                                    {brandList && brandList.map((item, index) =>
                                                        <Option key={`${index}ss`} value={`${item.brand}`}>{item.brand}</Option>
                                                    )}
                                                </Select>
                                            )}
                                        </FormItem>
     </Col>
    <Col span={6} style={{ padding: '0 5px' }}>
                                        <FormItem>
                                            {getFieldDecorator('car_type', { onChange: this.handleCarTypeChange })(
                                                <Select
                                                    allowClear
                                                    showSearch
                                                    style={{ '100%' }}
                                                    placeholder="车型"
                                                    optionFilterProp="children"
                                                    filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
                                                >
                                                    {car_typeList && _.uniq(car_typeList.map(item => item.car_type)).map((item, index) =>
                                                        <Option key={`${index}s`} value={`${item}`}>{item}</Option>
                                                    )}
                                                </Select>
                                            )}
                                        </FormItem>
     </Col>

      2.js操作

    if (getFieldValue("car_type")) {
                console.log(car_typeList,'car_typeList');
                const names = car_typeList.filter(item => item.car_type == getFieldValue("car_type")).map(item => item.brandname)
                brandList = brandList.filter(item => names.indexOf(item.brand) != -1);
                console.log(brandList,'brandList');
            }
    if (getFieldValue("brandValue")) {
                car_typeList = car_typeList.filter(item => item.brandname == getFieldValue("brandValue"))
            }

      3.接口数据

      const { projectDrop = {} } = this.props;
      let car_typeList = projectDrop.car_typeList || [];//car_type
            let brandList = projectDrop.brandList || [];//brand

      

  • 相关阅读:
    Spring基础知识
    Hibernate基础知识
    Struts2基础知识
    在eclipse里头用checkstyle检查项目出现 File contains tab characters (this is the first instance)原因
    java后台获取cookie里面值得方法
    ckplayer 中的style.swf 中的 style.xml 中的修改方法
    java hql case when 的用法
    Windows下Mongodb安装及配置
    Mongodb中经常出现的错误(汇总)child process failed, exited with error number
    Mac 安装mongodb
  • 原文地址:https://www.cnblogs.com/lppswkf/p/9140234.html
Copyright © 2011-2022 走看看