Javascript 反应:在搜索框中过滤
我正在尝试对从API获得的数据进行过滤。 以下是我尝试过的:Javascript 反应:在搜索框中过滤,javascript,reactjs,Javascript,Reactjs,我正在尝试对从API获得的数据进行过滤。 以下是我尝试过的: class ApiComponent extends Component { constructor() { super(); this.state = { pizzas: [], input: "", }; } onChangeHandler(e) { this.setState({ input: e.target.value, }); }
class ApiComponent extends Component {
constructor() {
super();
this.state = {
pizzas: [],
input: "",
};
}
onChangeHandler(e) {
this.setState({
input: e.target.value,
});
}
componentWillMount() {
axios.get("api/pizzas").then((Response) => {
this.setState({
pizzas: JSON.parse(JSON.stringify(Response.data)),
});
});
}
render() {
const list = this.state.pizzas
.filter((d) => this.state.input === "" || d === this.state.input)
.map((d, index) => <li key={index}>{d}</li>);
return (
<div className="container">
<form>
<input
value={this.state.input}
type="text"
onChange={this.onChangeHandler.bind(this)}
placeholder="search"
/>
</form>
{this.state.pizzas.map((pizza) => (
<ul key={pizza.id}>
{pizza.area_id}  {pizza.name} 
{pizza.real_name}
</ul>
))}
</div>
);
}
}
类ApiComponent扩展组件{
构造函数(){
超级();
此.state={
比萨饼:[],
输入:“,
};
}
onChangeHandler(e){
这是我的国家({
输入:e.target.value,
});
}
组件willmount(){
axios.get(“api/pizzas”)。然后((响应)=>{
这是我的国家({
pizzas:JSON.parse(JSON.stringify(Response.data)),
});
});
}
render(){
const list=this.state.pizzas
.filter((d)=>this.state.input==“”| | d==this.state.input)
.map((d,index)=>{d});
返回(
{this.state.pizzas.map((pizza)=>(
{pizza.area_id}&emsp;{pizza.name}&emsp;
{披萨,真名}
))}
);
}
}
每当我尝试在搜索框中输入任何内容时,都会出现以下错误:
未捕获类型错误:d.includes不是函数
我在用es6。所以应该有includes。axios的response.data是数组吗?尝试将“d.includes(this.state.input)”替换为“d==this.state.input”否。它是JsonData@kahonmlg代码没有给出任何错误。但是它也不做任何过滤。你能在过滤器中做一个console.log(d)和console.log(this.state.input)来查看值吗?axios的response.data是数组吗?尝试将“d.includes(this.state.input)”替换为“d==this.state.input”否。它是JsonData@kahonmlg代码没有给出任何错误。但是它也不做任何过滤。您可以在过滤器中执行console.log(d)和console.log(this.state.input)来查看值吗?