无法将字符串变量传递给函数

时间:2016-07-28 16:40:42

标签: javascript reactjs

我有一个下拉列表,当点击其中一个项目时,我会调用此函数:

  onClick(type) {
    type.preventDefault();
    let query = type.target.text;
    PokeApi.pokemonType(query).then(function(data) {
      console.log(data);
    }.bind(this));
  }

console.log返回undefined。

当我这样做时:

  onClick(type) {
    type.preventDefault();
    let query = type.target.text;
    console.log(query);
    console.log(typeof query);
    PokeApi.pokemonType(query).then(function(data) {
      console.log(data);
    }.bind(this));
  }

第一个console.log将返回下拉项的文本。第二个console.log将返回字符串。现在,当我将查询传递给PokeApi.pokemonType时,我可以从api返回404错误,第三个console.log返回undefined。

但是,如果我直接传递下拉列表的文本:

  onClick(type) {
    type.preventDefault();
    PokeApi.pokemonType("ice").then(function(data) {
      console.log(data);
    }.bind(this));
  }

一切都很完美,我从api那里得到了正确的对象。

知道为什么会这样吗?我做错了什么?

1 个答案:

答案 0 :(得分:0)

您必须获取下拉列表选定元素的值

var sel = document.getElementById('myDropdown'),
var selectedText = sel.options[sel.selectedIndex].value;