لدي مشكلة كبيرة في SSR في Laravel وInertia وReact، والمشكلة تكمن في أنني أواجه تلك المشكلة فقط في وضع SSR وليس لدي تلك المشكلة في وضع التطوير ووضع CSR.
واستخدم Laravel-inertia-react-vite، وذلك الكود في ملف Home.jsx:
importMasterLayout from "@/Layouts/MasterLayout";importCourseCard from "@/Components/CourseCard";exportdefaultfunctionHome({courses}){return(<><MasterLayout><CourseCard courses={courses.slice(0,2)}/></MasterLayout></>);}
Warning:React.jsx: type is invalid -- expected a string (for built-in components) or a class/function(for composite components) but got: object.
at CourseCard(file:///D:/Projects/**/**/bootstrap/ssr/assets/CourseCard-0f7e9619.js:8:23)
at div
at div
at div
at div
at div
at section
at div
at main
at MasterLayout(file:///D:/Projects/**/**/bootstrap/ssr/assets/MasterLayout-94d1044e.js:191:25)
at Home(file:///D:/Projects/**/**/bootstrap/ssr/assets/Home-0d9441f1.js:203:17)
at M (file:///D:/Projects/**/**/node_modules/@inertiajs/react/dist/index.esm.js:1:489)
at div
Error:Element type is invalid: expected a string (for built-in components) or a class/function(for composite components) but got: object.
at renderElement (D:\Projects\**\***\node_modules\react-dom\cjs\react-dom-server-legacy.node.development.js:6047:9)
inertia.php:
<?php
return[/*
|--------------------------------------------------------------------------
| Server Side Rendering
|--------------------------------------------------------------------------
|
| These options configures if and how Inertia uses Server Side Rendering
| to pre-render the initial visits made to your application's pages.
|
| You can specify a custom SSR bundle path, or omit it to let Inertia
| try and automatically detect it for you.
|
| Do note that enabling these options will NOT automatically make SSR work,
| as a separate rendering service needs to be available. To learn more,
| please visit https://inertiajs.com/server-side-rendering
|
*/'ssr'=>['enabled'=>true,'url'=>'http://127.0.0.1:13714',// 'bundle' => base_path('bootstrap/ssr/ssr.mjs'),],/*
|--------------------------------------------------------------------------
| Testing
|--------------------------------------------------------------------------
|
| The values described here are used to locate Inertia components on the
| filesystem. For instance, when using `assertInertia`, the assertion
| attempts to locate the component as a file relative to any of the
| paths AND with any of the extensions specified here.
|
*/'testing'=>['ensure_pages_exist'=>true,'page_paths'=>[
resource_path('js/Pages'),],'page_extensions'=>['js','jsx','svelte','ts','tsx','vue',],],];
وssr.jsx:
importReactDOMServer from 'react-dom/server';import{ createInertiaApp } from '@inertiajs/react';import createServer from '@inertiajs/react/server';import{ resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers';import route from '../../vendor/tightenco/ziggy/dist/index.m';
createServer((page)=>
createInertiaApp({
page,
render:ReactDOMServer.renderToString,
resolve:(name)=> resolvePageComponent(`./Pages/${name}.jsx`,import.meta.glob('./Pages/**/*.jsx')),
setup:({App, props })=>{
global.route =(name, params, absolute)=>
route(name, params, absolute,{...page.props.ziggy,
location:new URL(page.props.ziggy.location),});return<App{...props}/>;},}));
لقد جربت كل شيء ولكن لا أعرف كيفية حل المشكلة، أعتقد أن السبب في بياناتي فعند إرسال بيانات فارغة للوضع SSR يحدث ذلك.
السؤال
Abdelrahman Mostafa10
لدي مشكلة كبيرة في SSR في Laravel وInertia وReact، والمشكلة تكمن في أنني أواجه تلك المشكلة فقط في وضع SSR وليس لدي تلك المشكلة في وضع التطوير ووضع CSR.
واستخدم Laravel-inertia-react-vite، وذلك الكود في ملف Home.jsx:
بيانات الدورة:
أواجه هذا الخطأ:
inertia.php:
وssr.jsx:
لقد جربت كل شيء ولكن لا أعرف كيفية حل المشكلة، أعتقد أن السبب في بياناتي فعند إرسال بيانات فارغة للوضع SSR يحدث ذلك.
0 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.