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

      

  • 相关阅读:
    Ibatis入门基本语法(转) good
    zip文件压缩(转)
    联合创始人股权分配,五五分是最糟糕的做法(转)
    家长如何检查孩子的家庭作业
    oracle存储过程实例
    MachineKey
    写写我那天參加过的《文明之光》书友会
    各种加解密算法比較
    算法分析---查找最大回文子串
    随机数是骗人的,.Net、Java、C为我作证
  • 原文地址:https://www.cnblogs.com/lppswkf/p/9140234.html
Copyright © 2011-2022 走看看