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

      

  • 相关阅读:
    windows向Linux服务器上传、下载,服务器内复制、移动文件
    解决:ubuntu提示E: 无法获得锁 /var/lib/dpkg/lock-frontend
    PostgreSQL安装与简单操作
    LeetCode 234.回文链表
    LeetCode 445.两数相加 II
    LeetCode 24.两两交换链表中的节点
    LeetCode 19.删除链表的倒数第 n 个节点
    LeetCode 26.删除排序数组中的重复项
    Java 程序运行机制
    String 属于基础的数据类型吗?
  • 原文地址:https://www.cnblogs.com/lppswkf/p/9140234.html
Copyright © 2011-2022 走看看