如何在同构 reactjs 应用程序中加载第三方库?



我正在尝试使用专门条纹元素的条纹库,以便我可以设置用于付款处理的自定义表单。我在服务器中使用 mern-starter .js文件中我有以下代码。您可以看到,在底部我添加了一个脚本标签来导入条纹。但是,在我的客户端文件夹中,我有一个组件正在尝试使用条纹,但它似乎无法访问它。我的猜测是,还不知道它的存在,但是我如何规避这个问题呢?我看过一个专门处理加载脚本的 react 组件,但它似乎不是一个很好的解决方案。我只是想知道是否有其他人知道更好的方法。我知道我可以使用回调并在加载完成后进行调度和操作(使用 REDUX(,然后才允许我的条纹代码执行,但这似乎很烦人。对此问题的任何见解将不胜感激。

return `
<!doctype html>
<html>
<head>
${head.base.toString()}
${head.title.toString()}
${head.meta.toString()}
${head.link.toString()}
${head.script.toString()}
${process.env.NODE_ENV === 'production' ? `<link rel='stylesheet' href='${assetsManifest['/app.css']}' />` : ''}
<link href='https://fonts.googleapis.com/css?family=Lato:400,300,700' rel='stylesheet' type='text/css'/>
<link rel="shortcut icon" href="http://res.cloudinary.com/hashnode/image/upload/v1455629445/static_imgs/mern/mern-favicon-circle-fill.png" type="image/png" />
</head>
<body>
<div id="root">${html}</div>
<script>
window.__INITIAL_STATE__ = ${JSON.stringify(initialState)};
${process.env.NODE_ENV === 'production' ?
`//<![CDATA[
window.webpackManifest = ${JSON.stringify(chunkManifest)};
//]]>` : ''}
</script>
<script src='${process.env.NODE_ENV === 'production' ? assetsManifest['/vendor.js'] : '/vendor.js'}'></script>
<script src='${process.env.NODE_ENV === 'production' ? assetsManifest['/app.js'] : '/app.js'}'></script>
<script src='https://js.stripe.com/v3/'></script>
</body>
</html>`;

您的问题是您的应用程序脚本在加载stripe.js之前正在运行。

<script src='https://js.stripe.com/v3/'></script>放在脑袋里,或者至少放在你的应用之前(在这种情况下app.js(。

最新更新