MERN удалить данные, не определенные на бэкэнде

Я пытаюсь реализовать функцию удаления в своем приложении MERN, но всякий раз, когда я пытаюсь отправить свой delete IDs на серверный контроллер, Delete ID Array не определен

deletePosts — это массив ID для удаления deletePosts = [id1, id2, id3 ...]

Компонент React Posts: -

function AllPosts() {
  const dispatch = useDispatch();

  
  const { posts, isSuccess } = useSelector((state) => state.posts);

  
  const handleDelete = () => {
    dispatch(deletePost({deletePosts}));
  };

  return (
                <>
                      {posts.map((post, index) => (
                        <Post
                          postId={post._id}
                          subject={post.subject}
                          handleDelete={handleDelete}
                        />
                      ))}
                
                </>
    
  )}

export default AllPosts;

Срез набора инструментов Redux: -

export const deletePost = createAsyncThunk(
    "posts/delete",
    async (postDelete, thunkAPI) => {
      try {
        
        const token = JSON.parse(localStorage.getItem("token"));
    
        return await postService.deletePost(postDelete, token);
    
    } catch (error) {
        const message =
          (error.response &&
            error.response.data &&
            error.response.data.message) ||
          error.message ||
          error.toString();
  
        return thunkAPI.rejectWithValue(message);
      }
    }
  );

Сервис набора инструментов REDUX: -

const deletePost = async (postDelete, token) => {
    const config = {
      headers: {
        Authorization: `Bearer ${token}`,
      },
    };
  
    
    const response = await axios.delete(API_URL, postDelete, config);
        
    return response.data;
  
};

МАРШРУТ:-

router.route("/").delete(protect, deletePost)

КОНТРОЛЛЕР:-


const deletePost = asyncHandler(async (req, res) => {
    console.log("Delete Controller:-  ", req.body);

    /****
     * 
     *    Delete Logic 
     * 
     * 
     */
  
  });

КОНТРОЛЛЕР console.log: -

Delete Controller:-  {}

Данные передаются из Component > Slice > Service > Route > Controller

the deletePosts array has content of Ids till REDUX toolkit Service но в контроллере показывает Undefined

Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
Приложение для отслеживания бюджета на React js для начинающих
Приложение для отслеживания бюджета на React js для начинающих
Обучение на практике - это проверенная тема для достижения успеха в любой области. Если вы знаете контекст фразы "Практика делает человека...
Стоит ли использовать React в 2022 году?
Стоит ли использовать React в 2022 году?
В 2022 году мы все слышим о трендах фронтенда (React, Vue), но мы не знаем, почему мы должны использовать эти фреймворки, когда их использовать, а...
Как передать состояние или данные в react-router v6
Как передать состояние или данные в react-router v6
react-router - это лучшая библиотека для работы с маршрутизацией в reactjs. С помощью react-router вы передаете состояние или данные от одного...
0
0
13
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Возможно, это решит вашу проблему:

const deletePost = async (postDelete, token) => {
    const config = {
      headers: {
        Authorization: `Bearer ${token}`,
      },
      data:{
          postDelete 
      }
    };  
    const response = await axios.delete(API_URL, config);      
    return response.data;
};

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

const handleDelete = () => {
  dispatch(deletePost(deletePosts)); // ({deletePosts}) will give you an object of deleted posts in the destination instead of an array

};

да, это сработало, спасибо, и да, deletePosts не предназначался как объект.

Tejas P 10.04.2022 12:29

Другие вопросы по теме