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

      

  • 相关阅读:
    20200209 ZooKeeper 3. Zookeeper内部原理
    20200209 ZooKeeper 2. Zookeeper本地模式安装
    20200209 Zookeeper 1. Zookeeper入门
    20200206 尚硅谷Docker【归档】
    20200206 Docker 8. 本地镜像发布到阿里云
    20200206 Docker 7. Docker常用安装
    20200206 Docker 6. DockerFile解析
    20200206 Docker 5. Docker容器数据卷
    20200206 Docker 4. Docker 镜像
    Combining STDP and Reward-Modulated STDP in Deep Convolutional Spiking Neural Networks for Digit Recognition
  • 原文地址:https://www.cnblogs.com/lppswkf/p/9140234.html
Copyright © 2011-2022 走看看