React Native实现搜索框功能

手把手教你如何在React Native中实现搜索功能,搜索图标使用的是react-native-vector-icons中的MaterialIcons,前提是已经安装了react-native-vector-icons,安装react-native-vector-icons参见:在React Native项目中使用react-native-vector-icons图标

代码:

import React, {useState} from 'react';
import {
  View,
  Text,
  ScrollView,
  TextInput,
  ActivityIndicator,
} from 'react-native';
import Ionicons from 'react-native-vector-icons/Ionicons';
import {DrawerParamList, TabParamList} from '../../../types/types';
import {CompositeNavigationProp} from '@react-navigation/native';
import {BottomTabNavigationProp} from '@react-navigation/bottom-tabs';
import {DrawerNavigationProp} from '@react-navigation/drawer';
import MaterialIcons from 'react-native-vector-icons/MaterialIcons';

// export type HomeScreenProps = RouterStackScreenProps<'HomeScreen'>;
export type HomeScreenProps = CompositeNavigationProp<
  BottomTabNavigationProp,
  DrawerNavigationProp
>;
const HomeScreen = ({route, navigation}: HomeScreenProps) => {
  const [query, setQuery] = useState(''); // 搜索内容
  const [loading, setLoading] = useState(true); // 是否在搜索中
  const [opacity, setOpacity] = useState(0); // 清空搜索内容时清空图标的透明度

  const fetchData = () => {
    setLoading(false);
    setOpacity(1);
    // TODO
    //  调用后端搜索接口,
    //  搜索结束要将state恢复初始状态
    // setLoading(true);
    // setOpacity(0);
  };

  return (
    
      {/*TODO*/}
      
        
          
           {
              setQuery(query);
            }}
            onSubmitEditing={() => {
              fetchData();
            }}
          />
          {/*  搜索时显示加载指示器*/}
          
        
      
    
  );
};

export default HomeScreen;

使用React Native提供的TextInput组件来实现搜索输入框功能,该组件的属性说明:

展开阅读全文

页面更新:2024-03-09

标签:指示器   回车键   透明度   图标   组件   属性   接口   文本   功能   方法   内容

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top