手把手教你如何在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
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号