Vue:Stripe 未定义 - 是否需要在任何地方都包含 Stripe?

Gal*_*van 2 stripe-payments vue.js

当我尝试仅在我需要的模板中包含条带依赖项时(在 Laravel Blade 中):

@push ('head_scripts')
    <script src="https://js.stripe.com/v3/"></script>
@endpush
Run Code Online (Sandbox Code Playgroud)

..我收到错误“ ReferenceError: Stripe is not defined”。所以我把它包含在我的主要“头部”部分中,所以它无处不在。然后我在进入管理部分时遇到了同样的错误,因为它不包含在该模板中。

但它真的需要无处不在吗?

它仅用于一个 vue 组件,如下所示:

<script>
    let stripe = Stripe(`pk_test_zzzzzzzzzzzzzzz`);
    let elements = stripe.elements();
    let card = undefined;
Run Code Online (Sandbox Code Playgroud)

即使未呈现该组件,它似乎也会被评估。我能以某种方式解决这个问题吗?

小智 5

我在不使用 Laravel 的 Vue 应用程序中遇到了这个问题。

但是为了修复它我把脚本<script src="https://js.stripe.com/v3/"></script>放在我的index.html

然后在组件中引用 Stripe 时,我使用window.StripeThat 指向脚本并修复了ReferenceError: Stripe is not defined错误。