为了账号安全,请及时绑定邮箱和手机立即绑定

vue select遍历 get请求向后台传数据

vue select遍历 get请求向后台传数据

茅侃侃 2019-04-18 18:19:15
和后台调接口的过程中,遇到select选择器选中后,将value=0传给后台,但是传不过去的问题      <Select v-model="maintainState" placeholder="请选择" size="large" filterable clearable>        <Option v-for="item in maintainStates" :value="item.value" :key="item.value">{{ item.label }}</Option>      </Select>             maintainStates: [        {          value: 0,          label: '未开始'        },        {          value: 1,          label: '进行中'        },        {          value: 2,          label: '已完成'        }      ]      选择value = 0 F12调试下没有status字段 没有传过去封装的get请求     get (url, params) {        let queryString = []        if (params) {          Object.keys(params).forEach((key) => params[key] && queryString.push(`${key}=${params[key]}`))        }        if (queryString.length > 0) {          queryString = queryString.join('&')          url += `?${queryString}`        }        return axios          .get(url)          .then(handleStatus)          .catch(handleError)      }      封装得post请求          post (url, params) {            return axios              .post(path + url, getString(params))              .then(handleStatus)              .catch(handleError)          }      但是如果给value加上引号改成       maintainStates: [        {          value: '0',          label: '未开始'        },        {          value: '1',          label: '进行中'        },        {          value: '2',          label: '已完成'        }      ]就可以传过去或者把请求方式改为post也可以最奇怪的是只有value=0时传不过去 value=1,2时都可以请问大神这是为什么呢? 是我封装的get请求不对吗?
查看完整描述

2 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

js本身是弱类型的语言,0有很多种解释,可以代表数字,也可以代表false(无),在你这个场景里面很明显,js认为status无值造成的


查看完整回答
反对 回复 2019-05-19
?
ITMISS

TA贡献1871条经验 获得超8个赞

Object.keys(params).forEach((key) => params[key] && queryString.push(`${key}=${params[key]}`))

里面的代码


params[key] && queryString.push(`${key}=${params[key]}`)

你这里需要params[key]为true才会执行&&后的语句,而当status为0时,上述变成


0 && queryString.push(`${key}=${params[key]}`)

0falsy(虚值),是在Boolean 上下文中已认定可转换为'假'的值,所以后面push操作不会执行。而12truthy,而非空字符串也是truthy,所以会执行push操作。

查看完整回答
反对 回复 2019-05-19
  • 2 回答
  • 0 关注
  • 1723 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信