text: import React from 'react';
  import memoize from "memoize-one";
  
  class Example extends Component {
    // state 只需要保存当前的 filter 值：
    state = { filterText: "" };
  
    // 在 list 或者 filterText 变化时，重新运行 filter：
    filter = memoize(
      (list, filterText) => list.filter(item => item.text.includes(filterText))
    );
  
    handleChange = event => {
      this.setState({ filterText: event.target.value });
    };
  
    render() {
      // 计算最新的过滤后的 list。
      // 如果和上次 render 参数一样，`memoize-one` 会重复使用上一次的值。
      const filteredList = this.filter(this.props.list, this.state.filterText);
  
      return (
        <Fragment>
          <input onChange={this.handleChange} value={this.state.filterText} />
          <ul>{filteredList.map(item => <li key={item.id}>{item.text}</li>)}</ul>
        </Fragment>
      );
    }
  }