Как отобразить страницу сведений о форуме с помощью стека MERN?

#javascript #node.js #reactjs #mongodb #express

Вопрос:

Я создаю проект, подобный веб-сайту форума, используя стек MERN. В приложении у меня есть разные категории, и я хочу просмотреть их на странице сведений. Я перехожу на страницу сведений, такую как localhost:3000/темы/идентификатор, но на ней не отображается содержимое. Я не знаю, почему. Я новичок в react js. Если у кого-нибудь есть идея, помогите мне. Я провел много исследований, но не смог их найти.

 import { useEffect, useState } from 'react';
import { Link } from 'react-router-dom';

import Footer from './Footer';


const Categories = () => {
    

    const [cards, setcards] = useState([])
    const getData = async () => {
        const res = await fetch("/all-cat");
        console.log(res);
        setcards(await res.json());
        //console.log(data)
        
    }
    
    useEffect(() => {
        getData();
    }, []);
    
  
    return (
        <div className="category">
            <h3>Forum Categories</h3>
            <div className="container">
                <div className="row">

                    {
                        cards.map((e) => {
                            return (

                                <div className="col-10 col-md-4 mt-4" key={e.id}>
                                    <div className="card" >
                                        <img src="https://source.unsplash.com/1600x400/?coding" className="card-img-top" alt="..." />
                                        <div className="card-body">
                                            <h5 className="card-title">{e.title}</h5>
                                            <p className="card-text">{e.desc.substring(0, 94)}</p>
                                            <Link to={"/threads/" e._id}className="btn btn-primary">View Threads</Link>
                                        </div>
                                    </div>
                                </div>

                            )
                        })
                    }

                
                </div>
                <Footer/>
            </div>
           


        </div>



    );
}
export default Categories;
    
    // This a details page where i want the details in a next page. Its not displaying I dont know why? I am new in react please help me.. It should display the details of each categories from mongo db database below in the code I have given backend part also.
    import Footer from './Footer';
    import { useEffect,useState } from 'react';
    import Axios from 'axios'
    
    
     const Threads = ({match}) => {
        const [disp, dispCards] = useState([]);
        useEffect(() => {
            fetchDetails();
          }, []);
        const fetchDetails = () => {
            Axios.get(`/all-cat/?id=${match.params.id}`)
              .then((res) => {
                dispCards(res.disp);
                console.log(res.disp);
              })
              .catch((err) => console.log(err));
          };
        return (
            <div className="container my-4">
    
                               
                    
                  <div className="jumbotron">
                                <h1 className="display-4">Welcome to {disp?.title} Forum</h1>
                                <p className="lead">{disp?.desc}</p>
                                <hr className="my-4" />
                                <p>This is peer to peer forum for sharing knowledge with each other</p>
                                <a className="btn btn-primary btn-lg" href="/" role="button">Learn more</a>
                            </div>
    
                        
                    
                
            
    
            <Footer />
            </div>
             
    
        );
            
    }
    export default Threads;
    
    
    
    
    // This my backend part of detail page
    app.get("/threads/:id", (req, res) => {
         
         let type= req.query.type
         let id=req.query.id
        //console.log(id)
        if(type==='array'){
    
        }
         Forum.findById({'_id':{$in :id}})
            .populate('writer')
            .exec((err,detail)=>{
                if(err) return req.status(400).send(err)
                return res.status(200).send(detail)
            })
    
     })
    
    
    If anyone as idea please suggest me. I am new in react js after lot of researching i could not find the solution. 
 

Комментарии:

1. Откройте инструменты разработки chrome. Перейдите в консоль, посмотрите, есть ли какие-либо ошибки. Затем перейдите на вкладку сеть, посмотрите, работает ли ваша выборка.