現在nuxt typescript payjp で決済画面を作成している途中なのですが、
1回目の画面表示時は大丈夫なのですが、2回目画面表示時に上記エラーが表示されてしまいます。
destroyedでPayjpインスタンスを削除等色々やってみているのですが、なかなかうまく行きません
お力添えいただければ幸いです。
以下コードになります。
vue
1 2<template> 3 <div> 4 <h1>クレジットカード情報</h1> 5 <div class="card-form"> 6 <div id="payjp-form" class="payjs-outer"></div> 7 </div> 8 </div> 9</template> 10 11 12export default class CardForm extends Vue { 13 14 15 mounted () { 16 // @ts-ignore 17 const payjp = window.Payjp('/**テストアカウントのトークン**/') 18 const elements = payjp.elements() 19 const cardElement = elements.create('card') 20 cardElement.mount('#payjp-form') 21 22 } 23 24 destroyed () { 25 26 } 27 28}
nuxt.config.js
js
1 head: { 2 title: process.env.npm_package_name || '', 3 meta: [ 4 { charset: 'utf-8' }, 5 { name: 'viewport', content: 'width=device-width, initial-scale=1' }, 6 { hid: 'description', name: 'description', content: process.env.npm_package_description || '' } 7 ], 8 link: [ 9 { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' } 10 ], 11 script: [ 12 {src: 'https://js.pay.jp/v2/pay.js', async: true } // ここでpayjpを読んでいる 13 ] 14 }, 15/**省略 **/
エラー
client.js?06a0:97 Error: 既にインスタンス化されています at new e (pay.js:1) at window.Payjp (pay.js:1) at VueComponent.mounted (CardForm.vue?fbc2:44) at invokeWithErrorHandling (vue.runtime.esm.js?2b0e:1854) at callHook (vue.runtime.esm.js?2b0e:4219) at Object.insert (vue.runtime.esm.js?2b0e:3139) at invokeInsertHook (vue.runtime.esm.js?2b0e:6346) at VueComponent.patch [as __patch__] (vue.runtime.esm.js?2b0e:6565) at VueComponent.Vue._update (vue.runtime.esm.js?2b0e:3948) at VueComponent.updateComponent (vue.runtime.esm.js?2b0e:4060)
お手数ですが、ヒントになることがありましたらご教授お願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。