Некоторые данные возвращают значение undefined при использовании RTK Query

Это мой первый раз, когда я использую Redux, происходит то, что я пытаюсь показать данные в выборе пользовательского интерфейса материала, и когда я показываю имя пользователя, оно работает отлично, я сделал то же самое для данных партнера, но они прибыли как неопределенные.

В индексе сервера у меня есть следующий код: app.use("/client", clientRoutes);

В маршрутах у меня это:

import express from "express";
import { getAllUsers, getPartner } from "../controllers/client.js";

const router = express.Router();

router.get("/users", getAllUsers);
router.get("/partners", getPartner);

export default router;

В контроллере это:

import User from "../models/User.js";
import Partner from "../models/Partner.js";

export const getAllUsers = async (req, res) => {
  try {
    const users = await User.find();
    res.status(200).json(users);
  } catch (error) {
    res.status(404).json({ message: error.message });
  }
};

export const getPartner = async (req, res) => {
  try {
    const partners = await Partner.find();
    res.status(200).json(partners);
  } catch (error) {
    res.status(404).json({ message: error.message });
  }
};

В модели это:

import mongoose from "mongoose";

const PartnerSchema = new mongoose.Schema(
  {
    partner_name: {
      type: String,
      required: true,
      min: 2,
      max: 100,
    },
    partner_phone: {
      type: String,
      min: 2,
      max: 100,
    },
    partner_user: {
      type: String,
      required: true,
      min: 2,
      max: 100,
    },
    partner_password: {
      type: String,
      required: true,
      min: 2,
      max: 100,
    },
  },
  { timestamps: true }
);

const Partner = mongoose.model("Partner", PartnerSchema);
export default Partner;

В апи это:

import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";

export const api = createApi({
  reducerPath: "adminApi",
  baseQuery: fetchBaseQuery({ baseUrl: process.env.REACT_APP_BASE_URL }),
  tagTypes: ["User", "Users", "Partners"],
  endpoints: (build) => ({
    getUser: build.query({
      query: (id) => `general/user/${id}`,
      providesTags: ["User"],
    }),
    getAllUsers: build.query({
      query: () => "client/users",
      providesTags: ["Users"],
    }),
    getPartner: build.query({
      query: () => "client/partners",
      providesTags: ["Partners"],
    }),
  }),
});

export const { useGetUserQuery, useGetAllUsersQuery, useGetPartnerQuery } = api;

и в моем компоненте следующий импорт ::

import { useGetAllUsersQuery } from "state/api";
import { useGetPartnerQuery } from "state/api";

а затем этот код:

  const { data } = useGetAllUsersQuery();
  const { data2 } = useGetPartnerQuery();
  console.info("usuarios", data);
  console.info("partners", data2);

Вот где я понимаю, что данные поступают неопределенными. введите здесь описание изображения

Большое спасибо тем, кто может мне помочь!

🤔 А знаете ли вы, что...
JavaScript поддерживает работу с графикой и аудио, что позволяет создавать мультимедийные веб-приложения.


82
1

Ответ:

Решено

На линии

const { data } = useGetAllUsersQuery();

Вы правильно разрушаете свойство data, но проблема в том, что в следующей строке

const { data2 } = useGetPartnerQuery()

Вы деструктурируете несуществующее data2 свойство, которое имеет значение undefined, вместо этого вы должны деструктурировать data свойство и переименовать его в data2, используя двоеточие.

const { data: data2 } = useGetPartnerQuery()