请找到我的recipeslice.js代码。我正在使用react-redux技术制作食谱网站。我在从"https://www.themealdb.com/api.php"
网站获取API时遇到问题
import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
import axios from 'axios';
export const fetchRecipes = createAsyncThunk(
'recipes/fetchRecipes',
async () => {
fetch('https://www.themealdb.com/api/json/v1/1/list.php?c=list')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
}
);
const recipesSlice = createSlice({
name: 'recipes',
initialState: {
recipes: [],
status: 'idle',
error: null,
},
reducers: {},
extraReducers: (builder) => {
builder
.addCase(fetchRecipes.pending, (state) => {
state.status = 'loading';
})
.addCase(fetchRecipes.fulfilled, (state, action) => {
state.status = 'succeeded';
state.recipes = action.payload;
})
.addCase(fetchRecipes.rejected, (state, action) => {
state.status = 'failed';
state.error = action.error.message;
});
},
});
export default recipesSlice.reducer;
请帮助我从"https://www.themealdb.com/api.php"
获取API数据,因为我正在使用react-redux技术制作食谱网站。
我试图在recipeslice.js
文件中添加代码,但控制台中的错误是无法获取数据。
我试图在recipeslice.js
文件中添加代码,但控制台中的错误是无法获取数据,还有一些错误是这样的:bundle.js:327 GET https://www.themealdb.com/api/json/v1/1/list.php?c=list net::ERR_INSUFFICIENT_RESOURCES
。
1条答案
按热度按时间l5tcr1uw1#
问题
端点
"https://www.themealdb.com/api/json/v1/1/list.php?c=list"
返回以下JSON数据响应 *:*我不知道这个数据是否正确。我只能验证/确认它是请求的数据。
我看到的
fetchRecipes
thunk的问题是它不返回任何东西。建议方案
async/await
和Promise链混合使用,使用其中一个。fetchRecipes.rejected
的情况,不要忘记返回任何抛出的(* 和捕获的 *)错误。有关更多详细信息,请参见处理Thunk错误。使用Promise链
使用
async/await
/try/catch