reactjs Laravel Inertia渲染数据从后端到前端

ehxuflar  于 2023-02-03  发布在  React
关注(0)|答案(1)|浏览(238)

全新的使用reactJS与laravel惯性。
我正在尝试将数据从我的数据库呈现到前端。我使用一个控制器通过使用...

// Show all main categories
public static function index() {
    return MainCategory::all(['main_category_id', 'main_category_name']);
}

然后使用web.php通过以下代码将其传递到前端。

Route::get('/', function () {
   return Inertia::render('Admin/Categories', [
        'categories' => MainCategoryController::index()
   ]);
})->name('admin.category-setup');

我目前不知道如何在前端使用reactjs调用categories,我该怎么做呢?

0h4hbjxa

0h4hbjxa1#

我有时使用Inertia的内置usePage-Hook for React来访问传递的props。当您使用所有前端组件都可以访问的共享数据时,这会很方便(https://inertiajs.com/shared-data)。只要您的后端(Laravel)代码工作正常,实际的categories-属性被移交给Categories-Component或共享给所有前端,您可以执行如下操作:

import React from 'react';    
import { usePage } from '@inertiajs/inertia-react';
    
    function App() {
        const categories = usePage().props.categories;
    
        return (
            <ul>
                {categories.map((category) =>
                    (<li>{category}</li>))}
            </ul>
        );
    }

然而,对我来说,最常见的做法是简单地给予与你在Laravel中传递给惯性组件和React组件 prop 相同的变量名,就像这样。对我来说,这看起来应该完全适合你的用例:

import React from 'react';    
    
    function App({categories}) {        
        return (
            <ul>
                {categories.map((category) =>
                    (<li>{category}</li>))}
            </ul>
        );
    }

如果你想找到更多关于Inertia的信息,我强烈建议你阅读文档。开发人员在解释方面做得很好,这样一个没有经验的Laravel和React Dev就可以理解发生了什么。它实际上读起来不多,但显示了一些有趣的功能:https://inertiajs.com/

相关问题