reactjs - 如何使用 axios 使用钩子从具有不同参数的 API 中获取数据?
问题描述
我正在尝试制作一个餐厅查找器应用程序,并且我正在使用 API https://developers.zomato.com/api/v2.1'。所以在那个 API 中,有很多方法可以获取数据,比如基于位置、商店名称等。那么我如何使用带有钩子的 Axios 来实现它并且我应该显示?或者您可以将此问题视为如何使用带有钩子的 axios 在屏幕上执行 api 请求和显示?
我在下面分享我的代码:-
import React, { useState } from 'react';
import { View, Text, Platform, StyleSheet } from 'react-native';
import SearchBar from '../components/SearchBar';
import zomato from '../api/zomato';
const SearchScreen = (props) => {
const [term, setTerm] = useState('');
const [results, setResults] = (['']);
/////// Making API request
/*
const searchAPI = async () => {
//try{}
const response = await zomato.get('/search');
setResults(response.data.restaurants) ;
};
*/
const inputTerm = (event) => {
setTerm(event);
};
return (
<View>
<SearchBar
term={term}
onTermChange={inputTerm}
onTermSubmit={searchAPI}
/>
<Text> this is search screen</Text>
<Text>We have found {results.length} result</Text>
</View>
);
};
所以下面我发布了 searchBar.js 文件
const SearchBar = (props) => {
return (
<View style={styles.background}>
<Feather style={styles.iconStyle} name='search' size={30
} />
<TextInput
style={styles.textStyle}
placeholder='Search'
value={props.term}
onChangeText={props.onTermChange}
onEndEditing={props.onTermSubmit}
/>
</View>
);
};
这是我的 zomazto.js 文件 从“axios”导入 axios;
export default axios.create ({
baseURL: 'https://developers.zomato.com/api/v2.1',
headers : {
Authorization: 'Bearer e2ba1e85d07189511cade3ad235fd44c'
}
});
解决方案
如果我理解您的问题,您需要将查询参数传递到您的请求中,以根据您在 SearchBar 组件中输入的内容来查找餐厅。
您在这里不需要钩子,只需将参数添加到您的请求中,例如:
/////// Making API request
const searchAPI = async () => {
const response = await zomato.get(`/search?q=${term}`);
setResults(response.data.restaurants) ;
};
推荐阅读
- java - 数据未插入 Firebase 实时数据库抛出 Android
- php - 新 PHP8 中的致命错误“与 PDO::query 兼容”
- javascript - 如何从 URL 参数复制到 HTML
- python - 在数据帧的重复行中查找中值的最接近值
- python - 使列数据框成为sql查询语句
- html - 如何制作像在 Instagram 中实现的图像库?(所有图片大小相同)
- php - 获取一组获取的字段值的计数 - MySQL / PHP
- c++ - stl向量和队列的效率
- android - Carousal NavBar 反应原生
- docker-compose - Docker容器上的Odoo 10迁移,与数据库的连接失败