首页 > 解决方案 > 如何修复随机 GET /%3Canonymous%3E 404 错误消息

问题描述

HTTP 请求按预期工作,但我看到对 /%3Canonymous%3E 的附加请求返回 404。这导致 Redux 中出现以下错误:TypeError: Cannot read property 'map' of undefined my reducer 看起来像这样

export const getPostsReducer = (state={posts:[]}, action)=>{

    switch(action.type){
        case POST_UPLOAD_START:
            return{
                isLoading:true,
                posts:[],
            };
            case POST_UPLOAD_SUCCESS:
            return{
                isLoading:false,
                posts:action.payload.posts,
                pages: action.payload.pages,
                page:action.payload.page
            };
        case POST_UPLOAD_FAILURE:
            return{
                isLoading:false,
                error:action.payload
            };
        default:
            return state
    }
}

我的动作文件

export const listPosts = (keyword = '', pageNumber='') => async(dispatch)=>{

    try{
        dispatch({type: POST_UPLOAD_START})
        const {data} = await axios.get(`/api/posts?keyword=${keyword}&pageNumber=${pageNumber}`)
        console.log(data)
        dispatch({
            type:POST_UPLOAD_SUCCESS,
            payload:data
        }) 
    }catch(error){
        dispatch({
            type:POST_UPLOAD_FAILURE,
            payload:error
        })
    }
}

在我的主屏幕中,这就是我调用我的动作的地方

export default function Home({ match }) {

  const keyword = match.params.keyword
  const pageNumber = match.params.pageNumber || 1

  const dispatch = useDispatch()
  const allPosts = useSelector(state => state.allPosts)
  const {
    isLoading,
    error,
    posts,
    page,
    pages
  } = allPosts
  useEffect(() => {
    dispatch(listPosts(keyword, pageNumber))
  }, [dispatch, keyword, pageNumber])
}

这就是摩根的回报

控制台输出

标签: javascriptnode.jsreactjshttpreact-redux

解决方案


推荐阅读