Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何使用axios使用钩子从具有不同参数的API获取数据?_Reactjs_React Native_Networking_Axios_React Hooks - Fatal编程技术网

Reactjs 如何使用axios使用钩子从具有不同参数的API获取数据?

Reactjs 如何使用axios使用钩子从具有不同参数的API获取数据?,reactjs,react-native,networking,axios,react-hooks,Reactjs,React Native,Networking,Axios,React Hooks,我正在尝试制作一个餐馆搜索应用程序&我正在使用一个API。因此,在该API中,有很多方法可以获取数据,比如基于位置、商店名称等。那么,我如何使用带有挂钩的Axios实现这一点呢?我也应该显示出来? 或者你可以考虑这个问题,如何使用AXIOS和钩子来执行API请求和显示在屏幕上? 我在下面分享我的代码:- import React, { useState } from 'react'; import { View, Text, Platform, StyleSheet } from 'react-

我正在尝试制作一个餐馆搜索应用程序&我正在使用一个API。因此,在该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组件中输入的内容,将查询参数传递到查找餐厅的请求中

这里不需要钩子,只需将参数添加到请求中,如下所示:

/////// Making API request
const searchAPI = async () => {
   const response = await zomato.get(`/search?q=${term}`);
   setResults(response.data.restaurants) ;
};

当您想从API加载数据时,您没有解释您的问题?我想显示餐厅的详细信息。例如,我在搜索栏中键入了意大利菜。我应该在我的屏幕上获得详细信息?好的,我知道了,让我解释一下。我已经查看了您的代码,您做得对,但您是否面临一些问题?您只需要添加如下参数
/search?shop
或任何其他您想要添加的婴儿车。
export default axios.create ({
baseURL: 'https://developers.zomato.com/api/v2.1',

headers : {
    Authorization: 'Bearer e2ba1e85d07189511cade3ad235fd44c'
}
});
/////// Making API request
const searchAPI = async () => {
   const response = await zomato.get(`/search?q=${term}`);
   setResults(response.data.restaurants) ;
};