اذهب إلى المحتوى

السؤال

نشر

package.zipالسلام عليكم هذه ملفات المشروع الخاص فيني ولاكن class في ال tailwind مو كلهم عم يشتغلو و دائمة عم يسببو مشاكل اتمنى منكم المساعدة على سبل المثال في صفحة components/myservices في Link الcursor pointer لا تعمل و في اغلب الاحيان لحصل على نفس المشكلة اظن انها من اصدار tailwind الجديد فارجو ان تخبروني بلحل المناسب. و هنالك مشكلة اخرى انني لا استطيع تعريف مكتبة لتعدد اللغات في المشروع جربت اكثر من مرة اكثر من مكتبة ولم اجد شيء مناسب اذا كان هنالك اي مكتبة تعتقدون انها ممكن ان تفي بلغرض ارجو ارفاقها مع التوثيق وشكرا

Recommended Posts

  • 0
نشر

وعليكم السلام.

لديك عدة مشاكل في مشروعك عند فتح المشروع على:

http://localhost:3000

يظهر الخطأ التالي:

SyntaxError: Unexpected token '<', "<!DOCTYPE "... is not valid JSON

وهذا لأنه ليس لديك هذا المسار /api/languages فهو غير موجود في مشروع Next.js لذا انتقل إلى app ثم أنشئ المجلدات التالية:

app/api/languages/route.js

ثم داخل ملف route.js ضع التالي:

export async function GET() {
  const data = [
    { name: "JavaScript", proficiency: "Advanced" },
    { name: "Python", proficiency: "Intermediate" },
    { name: "C++", proficiency: "Basic" },
  ];

  return Response.json(data);
}

يمكنك التأكد من أن الخطأ زال إذا ظهرت لك بيانات JSON عند التوجه إلى:

http://localhost:3000/api/languages

ومنه سيعمل الكود في <About /> بدون خطأ.

أيضا في ملف components/MyServices.jsx بعض كلاسـات Tailwind مثل:

  • cursor-pointer
  • hover:underline
  • hover:text-main-color

هي لا تعمل، والسبب هو أنّه في مشروع Next.js الذي يستخدم App Router أي مجلد app/ بدل pages/ ومنه فجميع المكونات بدون "use client" تعتبر Server Components وكما نعلم فإنّ Server Components لا تدعم التفاعلات مع المستخدم مباشرة، لذلك كلاسـات مثل hover: أو cursor-pointer لا تطبق ومنه في أعلى الملف يجب إضافة:

"use client"

ليصبح الكود كالتالي:

'use client'; 

import React from "react";
import Image from "next/image";
import Link from "next/link";

function MyServices() {
  return (
    <div className="p-8">
      <h1 className="text-6xl font-bold my-10">My Services</h1>
      <div className="flex items-center flex-col md:flex-row justify-between gap-10">
        <div className="bg-white/30 -z-10 h-96 max-w-[350px] rounded-2xl p-6">
          <Image
            src="/front-end-project.webp"
            alt="Service 1"
            className="h-44 rounded-2xl"
            width={500}
            height={500}
          />
          <p className="user-select-none text-main-secondary-color font-bold cursor-pointer hover:underline hover:text-main-color">
            Project Link
          </p>
          <Link
            href="/"
            className="text-main-secondary-color font-bold cursor-pointer hover:underline hover:text-main-color"
          >
            Github Link
          </Link>
        </div>
      </div>
    </div>
  );
}

export default MyServices;

ولكي يتم استخدام هذا المكون يجب تعديل ملف app/services/page.js لاستعمال المكون كالتالي:

'use client';

import MyServices from "../components/MyServices";

export default function Services() {
  return <MyServices />;
}

وعند فتح الرابط على:

http://localhost:3000/services

ستجد أنه يعمل:

image.thumb.png.cef4429c77bfe5ad28b1293fda8e0e1d.png

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...