Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在react应用程序中加载外部脚本_Javascript_Html_Reactjs - Fatal编程技术网

Javascript 如何在react应用程序中加载外部脚本

Javascript 如何在react应用程序中加载外部脚本,javascript,html,reactjs,Javascript,Html,Reactjs,我这里有一个众所周知的问题,与react应用程序内部的外部脚本加载有关。尽管网上有很多文章,StackOverflow中也有很多类似的问题,但我无法解决我的问题 我正在尝试将Yodlee Fastlink集成到我的应用程序中。这是我应该运行的脚本 ((window) => { document.getElementById('btn-fastlink').addEventListener( 'click', (event) => {

我这里有一个众所周知的问题,与react应用程序内部的外部脚本加载有关。尽管网上有很多文章,StackOverflow中也有很多类似的问题,但我无法解决我的问题

我正在尝试将Yodlee Fastlink集成到我的应用程序中。这是我应该运行的脚本

((window) => {
    document.getElementById('btn-fastlink').addEventListener(
        'click',
        (event) => {
            window.fastlink.open({
                fastLinkURL: 'fastlinkURL',
                accessToken: 'Bearer accessToken',
                params: {
                    configName: 'Aggregation',
                },
            }, 'container-fastlink');
        },
        false,
    );
})(window);
这是反应组分

import React, { useEffect } from 'react';
import { Button } from 'react-bootstrap';

export const LinkBankDetails = React.memo((props) => {
    useEffect(() => {
        const script = document.createElement('script');
        script.src = '/public/external-services/fastlink-integration.js';
        script.defer = true;
        script.type = 'text/javascript';
        document.body.appendChild(script);

    }, []);

    return (
        <div id="container-fastlink">
           <Button type="submit" id="btn-fastlink">Continue</Button>
        </div>
    );
});
import React,{useffect}来自“React”;
从“react bootstrap”导入{Button};
export const LinkBankDetails=React.memo((道具)=>{
useffect(()=>{
const script=document.createElement('script');
script.src='/public/external services/fastlink integration.js';
script.defer=true;
script.type='text/javascript';
document.body.appendChild(脚本);
}, []);
返回(
继续
);
});
最后,我得到了这个错误


未捕获语法错误:意外标记“以下错误通常是因为浏览器试图将HTML或未编译的JSX加载为JavaScript

Uncaught SyntaxError: Unexpected token '<'

查看项目的文档,了解如何为静态文件提供服务。如果您使用的是Create React应用程序,那么当您在开发工具的“源代码”面板中查看脚本时会发生什么情况?您的本地服务器是否使用HTML文档进行响应?另外,您的原始脚本可以轻松地转换为React按钮处理程序,而无需在每次
装载时添加此脚本。@evelynhathaway它只是不识别它是JS。如果它说
你需要启用JavaScript来运行这个应用程序。
,那么你是在服务你的HTML文件,而不是你期望的脚本。查看有关如何为静态文件提供服务的文档。如果没有帮助,请告诉我们您的配置详细信息(网页包,如果您正在使用Create React应用程序等),然后我们可能会帮助您节省我的时间。。。谢谢。将src path更改为
${process.env.PUBLIC\u URL}/external services/fastlink integration.js
解决了此问题。您可以编写响应以使其被接受。耶!我很高兴为你修好了!我添加了一个答案,以便其他找到它的人可以看到它的答案。
You need to enable JavaScript to run this app.