简体   繁体   English

为什么我的过滤器功能不起作用?

[英]Why is my filter function not working?

simple react component that should be filtering a list. 应该过滤列表的简单react组件。 not working and i have no idea why... 不工作,我不知道为什么...

import React from 'react';

class Filter extends React.Component {
  state = {
    input: '',
    items: [{name: 'lol'}]
  }

  handleChange = (event) => this.setState({ input: event.target.value })

  render(){
    const { input, items } = this.state;
    return(
      <div>
        <input
          placeholder="search for an item"
          onChange={this.handleChange}
        />
        {items.filter(term => term.includes(input)).map((term) => (
          <div>{term.name}</div>
        ))}
      </div>
    )
  }
}

export default Filter;

literally filtering the array, then mapping over it.... 从字面上过滤数组,然后在其上映射...。

import React from 'react';

class Filter extends React.Component {
  state = {
    input: '',
    items: [{name: 'lol'}],
    filteredItems: false,
  } 

   filter(e) {
          var value = e.target.value;
          this.setState({filterval: value})

          this.setState({
            filteredItems: !value
              ? false
              : this.state.items.filter(function (item) {
                return item.name.toLowerCase().indexOf(value.toLowerCase()) !== -1;
              })
          })
        }


    render(){



            var list = this.state.filteredItems || this.state.items || []

            return (
             <div>
         <input placeholder="search for an item" onChange={this.filter.bind(this)}
        />
<div>

              {list.map((item,index) => (


                           <div>{term.name}</div>
                        ))}
</div>    
 </div>
 )
items.filter(term => term.includes(input))

The condition here is not correct. 这里的条件不正确。 The variable term is an object {name: 'lol'} . 变量term是对象{name: 'lol'} The includes is not available for an object. includes不适用于对象。 It's should be term.name.includes(input) or term.name === input 它应该是term.name.includes(input)term.name === input

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM