在我的项目中,我使用Redux Toolkit Query从API获取数据。当我在组件上使用它时,它给我PARSIN_ERROR,因为它返回我自己的html基本模板,而不是API响应...
这是我的服务代码。
import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
const cryptoApiHeaders = {
'X-RapidAPI-Key': process.env.CRYPTO_API_KEY,
'X-RapidAPI-Host': process.env.CRYPTO_API_HOST,
};
const createRequest = (url) => ({
url,
headers: cryptoApiHeaders,
});
export const CryptoApi = createApi({
reducerPath: 'CryptoApi',
baseQuery: fetchBaseQuery({ baseUrl: process.env.CRYPTO_API_URL }),
endpoints: (builder) => ({
getCryptos: builder.query({
query: (count) => createRequest(`/coins?limit=${count}`),
}),
getCryptoById: builder.query({
query: (coin_uuid) => createRequest(`/coin/${coin_uuid}`),
})
})
});
export const {
useGetCryptosQuery,
useGetCryptoByIdQuery
} = CryptoApi
这是我的商店代码。
import { configureStore } from "@reduxjs/toolkit"
import { CryptoApi } from "../Services/CryptoApi"
export const store = configureStore({
reducer: {
[CryptoApi.reducerPath]: CryptoApi.reducer,
},
middleware: (getDefaultMiddleware) =>
getDefaultMiddleware().concat(CryptoApi.middleware),
})
这里我注入提供者。
import { store } from './app/store'
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<BrowserRouter>
<Provider store={store}>
<App />
</Provider>
</BrowserRouter>
</React.StrictMode>
);
这里是我在组件中调用它的地方
import { useGetCryptosQuery } from '../Services/CryptoApi';
const Home = () => {
const { data, error, isLoading } = useGetCryptosQuery(10);
return (
<>
{
error ? (
console.error(error.error)
)
:
isLoading ? (
console.log(isLoading)
)
:
data ? (
console.log('Passed: ', data)
) : null
}
</>
)
}
export default Home;
这是响应
正如你所看到的,它在错误中返回了我自己的html模板......我整天都在处理这个问题,但不知道如何解决它......
OBS:所有env属性的格式都正确。
1条答案
按热度按时间djp7away1#
你贴出的问题得到答案了吗?