react native实现关键字搜索,自动刷新,使用FaltList数据渲染

数据渲染组件使用的是FaltList

import React, { Component } from 'react'
import { Text, View, FlatList, TextInput } from 'react-native'

// 首页
export default class Index extends Component {
  constructor(props) {
    super(props);
    this.state = {
      list: [],  // 渲染数据
      originList: [],  // 原始数据
      text: ''  // 输入文本
    }
  }

  componentDidMount() {
    for (let index = 0; index < 20; index++) {
      this.state.list.push({ id: index, name: `测试数据${index}` })
    }
    this.setState({
      list: this.state.list,
      originList: this.state.list
    })
  }

   // 输入内容
  onChangeText = (text) => {
    this.setState({
      text,
      list: this.filterText(text)
    })
  }

  // 关键词过滤
  filterText = (text) => {
    let data = this.state.originList
    if (text) {
      return data.filter((v) => {
        return Object.keys(v).some((key) => {
          return String(v[key]).toLowerCase().includes(text)
        })
      })
    }
    return data
  }

  render() {
    return (
      
         this.onChangeText(text)}
          value={this.state.text}
        />
         ID:{item.id} 内容:{item.name}}
        />
      
    );
  }
}

效果图


关键词过滤

你可能感兴趣的:(react native实现关键字搜索,自动刷新,使用FaltList数据渲染)