首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Blade视图中的React组件中插入Blade代码?

如何在Blade视图中的React组件中插入Blade代码?
EN

Stack Overflow用户
提问于 2022-02-04 16:37:28
回答 2查看 447关注 0票数 2

因此,我有一个名为homepage.blade.php的Laravel视图,它包含以下内容:

代码语言:javascript
运行
复制
<body>
   <div id=root></div>
   <script src="./js/app.js"></script>
</body>

内部app.js

代码语言:javascript
运行
复制
import React from "react";
import ReactDOM from "react-dom";
import SignUp from "./components/SignUp";

if (document.getElementById("root")) {
    ReactDOM.render(<SignUp />, document.getElementById("root"));
}

SignUp.js内部

代码语言:javascript
运行
复制
import React from "react";
export default function SignUp() {
    return (
<span className="text-xs font-bold uppercase"> Welcome, {!! auth()-> user() -> name !!} </span>
}

homepage.blade.php由控制器中的一个函数调用,如下所示:

代码语言:javascript
运行
复制
//inside the function in the Controller.php:
$user = User::create($attributes);
auth()->login($user);
return redirect('/homepage');    // homepage redirects to homepage.blade.php

The problem:我无法在将插入到homepage.blade.php视图中的React组件SignUp.js中插入行{!! auth()-> user() -> name !!}

问题:在React组件中有插入刀片代码的方法吗?还有更好的方法吗?

EN

回答 2

Stack Overflow用户

发布于 2022-02-04 17:13:30

你不能在js文件中使用刀片。正确的方法是使用<script></script>标记定义刀片文件中的变量,如下所示:

代码语言:javascript
运行
复制
<script>
   const window.username = '{!! auth()-> user() -> name !!}';
   <script src="./js/app.js"></script>
</script>

然后在app.js文件中使用定义的变量。

票数 2
EN

Stack Overflow用户

发布于 2022-02-04 16:57:54

你不能这样做。刀片只适用于MIME类型PHP上的脚本。您必须使用.php加载JS文件,以便能够呈现脚本。以下是你如何做到这一点:

  1. 设置头部,让调用者知道它是js文件。
  2. 在JS中设置刀片代码。并更改PHp.mvc中的文件扩展名。
  3. 将JS文件放到您的视图中(您的MVC),将其重命名为.php,并在控制器上放置一个头。这应该可以用。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70989848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档