【发布时间】:2016-12-03 04:33:22
【问题描述】:
我有一个下拉菜单,当其中一个项目被点击时,我调用这个函数:
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 得到正确的对象。
知道为什么会这样吗?我做错了什么?
【问题讨论】:
-
查看网络面板,查看请求。查看硬编码时发送的内容与使用 .text 时发送的内容
-
尝试改用
onChange,并获得可以使用的选定值:query = type.target.value! -
好吧,这么硬编码,请求 url 是 pokeapi.co/api/v2/type/ice 并查询它的 pokeapi.co/api/v2/type/%20ice%20
-
那么 %20 是从哪里来的?
-
所以你的文本中有空格。 :) TADA,修剪它。
标签: javascript reactjs