Javascript 反应:在搜索框中过滤

Javascript 反应:在搜索框中过滤,javascript,reactjs,Javascript,Reactjs,我正在尝试对从API获得的数据进行过滤。 以下是我尝试过的: class ApiComponent extends Component { constructor() { super(); this.state = { pizzas: [], input: "", }; } onChangeHandler(e) { this.setState({ input: e.target.value, }); }

我正在尝试对从API获得的数据进行过滤。 以下是我尝试过的:

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} &emsp;{pizza.name}&emsp;
            {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)来查看值吗?