Ошибка запроса с кодом состояния 404 в react и redux вместе с axios

#reactjs #redux #axios #http-status-code-404 #mern

Вопрос:

Я не понимаю, почему это происходит. В нем говорится, что «Свойство «сообщения» не существует в типе «DefaultRootState». ts(2339)», хотя в редукторах объединения сообщения есть. like so.

 import React from 'react';
import {  useSelector } from 'react-redux';
import Post from './Post/Post';

import useStyle from './Styles'
const Posts = () =>
{
    const posts = useSelector((state) => state.posts);// the error is shown here. 
    const classes = useStyle();
    console.log(posts);
    console.log();
    return (
        <>
        <h1>POSTS</h1>
        <Post/>
        <Post/>
        </>
    )
};

export default Posts;
 

Когда я запускаю программу, она показывает
, что это когда я пытался создать сообщение

Это мои воспитатели-комбайнеры. Мое государство также публикует сообщения.

 export default (posts = [] , action) =>{
switch(action.type)
{
    case 'FETCH_ALL':
       return action.payload;
    case 'CREATE':
        return [...posts, action.payload];
    default:
        return posts;
     }
   };
 

Я давал посты в combineReducers.

     import { combineReducers } from "redux";

    import posts from './posts'


    export default combineReducers ({ posts })
 

Это определенные действия.

     import * as api from '../api';

    export const getPosts = () => async (dispatch) =>{
  try {
        const { data } = await api.fetchPosts();
        dispatch({type:'FETCH_ALL' , payload : data});
    } catch (error) {
        console.log(error.message);
    }
}

export const createPost = (post) => async (dispatch) => {
    try {
          const { data } = await api.createPost(post);
          dispatch({type:'CREATE' , payload: data})
    } catch (error) {
        console.log(error.message);
    }
}

   
 

Ответ №1:

Это не говорит вам об ошибке в вашем React или Redux, это говорит вам о том, что на вашем сервере нет конечной точки, к http://localhost:5000/posts которой можно получить доступ с помощью запроса POST.

Либо у вас неверный URL-адрес, либо вам нужно проверить реализацию вашего сервера.