如何在 React-Native FlatList 中突出显示搜索结果?

司马阿塔

我是 React-native 的新手。在搜索栏中键入时,我需要突出显示 FlatList 中的搜索结果。有两个组件:react-native-highlight-wordsreact-native-text-highlight,但我不知道如何使用它们!这是我的代码:

import React, { Component } from 'react';
import {StyleSheet, Text, View, FlatList, TouchableOpacity } from 'react-native';
import { List, ListItem, SearchBar } from 'react-native-elements';
import DropdownMenu from 'react-native-dropdown-menu';
import {Header, Left, Right, Icon} from 'native-base'

var SQLite = require('react-native-sqlite-storage')
var db = SQLite.openDatabase({name: 'test.sqlite', createFromLocation: '~dictionary.sqlite'})
var data = [["English", "Arabic", "Persian"]];

export default class App extends Component {
  constructor(props) {
    super(props)
    this.state = {record: [], arrayholder : [], query:''};
    db.transaction((tx) => {
      tx.executeSql('SELECT * FROM tblWord', [], (tx, results) => {
          let row = results.rows.item();
          arrayholder = results.rows.raw()
          record = results.rows.raw()
          this.setState({arrayholder: arrayholder})
          this.setState({ record: record })
          }});});  
      }

  searchFilterFunction = text => {
    var newData = this.state.arrayholder;
    newData = this.state.arrayholder.filter(item => {
      const itemData = item.word_english.toLowerCase()
      const textData = text.toLowerCase()
      return itemData.indexOf(textData) > -1 });
    this.setState({query: text,record: newData });
  };


  render() {
    return (
      <View style = {styles.container}>
        <Header style={styles.headerStyle}>
            ...
        </Header>
        <View style={styles.menuView}>
          <DropdownMenu
            bgColor={"#B38687"}
            activityTintColor={'green'}
            titleStyle={{color: '#333333'}} 
            handler={(selection, row) => this.setState({text4: data[selection][row]})}
            data={data}
            >
          </DropdownMenu>
        </View >
        <View >
          <View style={styles.searchBarView}>
            <SearchBar
              placeholder="Search"
              lightTheme
              value = {this.state.query}
              onChangeText={text => this.searchFilterFunction(text)}
              autoCorrect={false}
              inputStyle={{backgroundColor: 'white'}}
              containerStyle={{backgroundColor: 'white', borderWidth: 1, borderColor:'#B38687', }}
              />
          </View>

          <View style={styles.flatListVew}>
            <List containerStyle={{ flexDirection: 'column-reverse', borderTopWidth: 0, borderBottomWidth: 0 }} >
              <FlatList 
                data={this.state.record} 
                keyExtractor={((item, index) => "itemNo-" + index)}
                renderItem={({item}) => (
                  <ListItem
                    roundAvatar
                    onPress={() => {this.props.navigation.navigate('Screen2', {data: (item.word_english +'\n' + item.word_arabic)} ); }}
                    title={item.word_english}
                    containerStyle={{ borderBottomWidth: 0 }}
                  /> )}
                />
              </List>
            </View>
          </View>
       </View>);}
          }

const styles = StyleSheet.create({
 ...

我希望结果如下所示:

在此处输入图片说明

任何帮助将不胜感激。

洛基

您可以通过文本或自定义视图ListItem组件作为props标题我正在使用React Native Highlight Words来突出显示您所说的文本。

添加React Native Highlight Words以下行:

import Highlighter from 'react-native-highlight-words';

更新ListItem组件代码以获得所需结果:

<ListItem
    roundAvatar
    onPress={() => {this.props.navigation.navigate('Screen2', {data: (item.word_english +'\n' + item.word_arabic)} ); }}
    title={
      <Highlighter
          highlightStyle={{backgroundColor: 'yellow'}}
          searchWords={[this.state.query]}
          textToHighlight={item.word_english}
      />}
    containerStyle={{ borderBottomWidth: 0 }}
/>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在React Native中的Flatlist中获取行索引

来自分类Dev

React Native:如何在FlatList中播放视频

来自分类Dev

如何在 FLatList react native 中实现 Sraech bar

来自分类Dev

如何使用Axios React Native在FlatList中渲染共振?

来自分类Dev

如何解决FlatList React Native中的Key问题

来自分类Dev

如何在React Native中使用复选框检查FlatList中的单个项目?

来自分类Dev

我如何在加载数据时在 react-native FlatList 中渲染 isLoading 元素

来自分类Dev

如何在 React-native 中删除 FlatList 右侧的小箭头图标?

来自分类Dev

React Native-如何在FlatList属性上使用导航?

来自分类Dev

如何在React Native中突出显示单个按钮?

来自分类Dev

从React Native中的FlatList中删除项目

来自分类Dev

React Native中的Flatlist图像源

来自分类Dev

React Native Flatlist中的网格视图

来自分类Dev

无法删除React Native FlatList中的项目

来自分类Dev

在 React Native 的 FlatList 中延迟加载项目?

来自分类Dev

如何在自动建议结果列表中突出显示搜索关键字 React JS

来自分类Dev

FlatList在React Native中未显示任何内容

来自分类Dev

如何解决React Native中scrollview和flatList之间的滚动冲突

来自分类Dev

React Native:FlatList中的RenderItem。如何映射存储在本地状态的数组?

来自分类Dev

如何获取值TextInput并添加到React Native中的Flatlist

来自分类Dev

如何修改从 elasticsearch 获取的数据结构以在 React Native flatlist 中呈现项目?

来自分类Dev

FlatList搜索栏不能持久保存键盘React Native

来自分类Dev

使用Redux时如何重新呈现FlatList React Native

来自分类Dev

React Native Flatlist-如何遍历嵌套对象

来自分类Dev

使用Redux时如何重新呈现FlatList React Native

来自分类Dev

React-native flatlist renderItem

来自分类Dev

React Native:FlatList 不呈现

来自分类Dev

React Native FlatList 不滚动

来自分类Dev

React Native FlatList没有显示来自API的数据(axios)

Related 相关文章

  1. 1

    如何在React Native中的Flatlist中获取行索引

  2. 2

    React Native:如何在FlatList中播放视频

  3. 3

    如何在 FLatList react native 中实现 Sraech bar

  4. 4

    如何使用Axios React Native在FlatList中渲染共振?

  5. 5

    如何解决FlatList React Native中的Key问题

  6. 6

    如何在React Native中使用复选框检查FlatList中的单个项目?

  7. 7

    我如何在加载数据时在 react-native FlatList 中渲染 isLoading 元素

  8. 8

    如何在 React-native 中删除 FlatList 右侧的小箭头图标?

  9. 9

    React Native-如何在FlatList属性上使用导航?

  10. 10

    如何在React Native中突出显示单个按钮?

  11. 11

    从React Native中的FlatList中删除项目

  12. 12

    React Native中的Flatlist图像源

  13. 13

    React Native Flatlist中的网格视图

  14. 14

    无法删除React Native FlatList中的项目

  15. 15

    在 React Native 的 FlatList 中延迟加载项目?

  16. 16

    如何在自动建议结果列表中突出显示搜索关键字 React JS

  17. 17

    FlatList在React Native中未显示任何内容

  18. 18

    如何解决React Native中scrollview和flatList之间的滚动冲突

  19. 19

    React Native:FlatList中的RenderItem。如何映射存储在本地状态的数组?

  20. 20

    如何获取值TextInput并添加到React Native中的Flatlist

  21. 21

    如何修改从 elasticsearch 获取的数据结构以在 React Native flatlist 中呈现项目?

  22. 22

    FlatList搜索栏不能持久保存键盘React Native

  23. 23

    使用Redux时如何重新呈现FlatList React Native

  24. 24

    React Native Flatlist-如何遍历嵌套对象

  25. 25

    使用Redux时如何重新呈现FlatList React Native

  26. 26

    React-native flatlist renderItem

  27. 27

    React Native:FlatList 不呈现

  28. 28

    React Native FlatList 不滚动

  29. 29

    React Native FlatList没有显示来自API的数据(axios)

热门标签

归档