美文网首页
下拉框的动态添加和静态写法

下拉框的动态添加和静态写法

作者: 楠楠_c811 | 来源:发表于2018-12-03 11:55 被阅读36次

    来来来,今天来总结一波。
    写后台操作系统很常见的就是会遇到下拉选择框,虽然现在都可以用组件,但是数据毕竟需要自己写,获取的方式也是各种各样,多掌握几种总是好的,避免万一出问题束手无策。
    之所以写下这篇总结,是因为我最初因为一个不确定的长度用了一个洋气的map循环来写下拉框的数据,自测的时候一切正常,然后到了测试环境各种打脸,数据死活都不愿意出来。
    不管我刷新多少次,重新提交多少次,就是不出来。
    环境也不是我搭的,我也没去研究过这个环境配置,自然完全不知道是因为什么导致的。所以最终只能取消这个洋气的循环,老老实实的把数据写死, 希望他能给点脸乖乖的显示出来。
    毕竟,领导们可不管你用什么技术,只有效果才是王道。
    这个是直接写死数据的写法,直接将代表的英文数据传回去,获取到相对应的汉语数据,展示出来。
    <Select></Select> 这个是蚂蚁antd的组件,直接封装好的下拉框,感兴趣的用react的小伙伴可以去看看这个,还是挺方便的,贴上地址,拿走不谢。
    https://ant.design/components/select-cn/#header

               <Select
                    showSearch
                    style={{ width: 200 }}
                    // 选择框默认文字
                    placeholder="全部"
                    // 选项变化时触发事件
                    onChange={this.handleChange}
                >
                    <Option value="">全部</Option>
                    <Option value="LTC">莱特币</Option>
                    <Option value="ETH">以太坊</Option>
                    <Option value="BCH">比特币现金</Option>
                    <Option value="EOS">柚子</Option>
                    <Option value="ETC">以太坊经典</Option>
                    <Option value="OMNI">比特币</Option>
               </Select>
    

    这个是我之前写的洋气的循环,开发环境没问题,测试环境直接挂,原因不明......

                <Select
                    showSearch
                    style={{ width: 200 }}
                    // 选择框默认文字
                    placeholder="全部"
                    // 选项变化时触发事件
                    onChange={this.handleChange}
                  >
                    <Option value="">全部</Option>
                    {/*将符合结构的数据循环进去*/}
                    {
                      this.state.typeList.map((item,index)=>{
                        return <Option value={item}>{item}</Option>
                      })
                    }
               </Select>
    

    点击事件也放一下吧,需要的小朋友可以看个思路。

     下拉框搜索事件
      handleChange = (value)=>{
        定义上行参数
        let params = {
          "type":value,
        };
         传参刷新当前页面数据
        this.getAccounts(params);
      }
    这个传参用意体现在接口这里:
    // 初始页面数据接口
      getAccounts(condition){
        //  定义上行参数
        let params = {
          "deviceId":"",  //--设备id
          "txHash":"",     //--交易hash
          "status":"",     //--状态
          "sortOrder":"",   //--排序 ascend,descend两种状态
          "sortField":"",   //--排序字段 txStartTime
          "page":1,
          "size":5
        }
         // 判断是否有传参,如果有就走传参进来的数据
        if(condition){
          params = Object.assign({},params,condition)
        }
        // ajax 请求数据
        axios.post('/mgt/deviceManager/transaction',params,{
          //   传输authtoken
          headers:{
            authtoken:window.localStorage.getItem('authtoken')
          }
        }).then((response)=>{
          // 判断数据请求是否成功,成功就获取数据
          if(response.data.code == '0'){
            this.setState({
              accountsList:response.data.data.list,
            })
          }
        })
      }
    

    相关文章

      网友评论

          本文标题:下拉框的动态添加和静态写法

          本文链接:https://www.haomeiwen.com/subject/gitycqtx.html