Это мой первый раз, когда я использую 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 поддерживает работу с графикой и аудио, что позволяет создавать мультимедийные веб-приложения.
На линии
const { data } = useGetAllUsersQuery();
Вы правильно разрушаете свойство data
, но проблема в том, что в следующей строке
const { data2 } = useGetPartnerQuery()
Вы деструктурируете несуществующее data2
свойство, которое имеет значение undefined
, вместо этого вы должны деструктурировать data
свойство и переименовать его в data2
, используя двоеточие.
const { data: data2 } = useGetPartnerQuery()