#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-адрес, либо вам нужно проверить реализацию вашего сервера.