Meteor - React - Stripe: как импортировать Stripe

В приложении Meteor / React мне нужно импортировать Stripe из mrgalaxy: stripe. Я пытался:

import { Stripe }  from 'meteor/mrgalaxy:stripe';

но он возвращает:

TypeError: Cannot read property 'setPublishableKey' of undefined 

В папке сервера я создал файл stripe.js, в который добавил следующее:

import { Meteor } from 'meteor/meteor';
import { Stripe }  from 'meteor/mrgalaxy:stripe';

Meteor.startup(function(){
  Stripe.setPublishableKey(Meteor.settings.public.StripePub);
});

person Art    schedule 03.06.2017    source источник
comment
В этом пакете используются устаревшие версии api и npm. Поскольку теперь вы можете напрямую использовать пакеты npm и добавлять объявления сценариев в свой шаблон <head>.   -  person MasterAM    schedule 03.06.2017


Ответы (2)


Основываясь на этом тесте, который находится в репозитории github, где нет оператора импорта

Tinytest.add('Stripe client is available', function(test){
  test.isTrue(Stripe != null);
});

Я предполагаю, что включение пакета просто добавляет переменную Stripe в глобальную область видимости.

Страница stripe_client.html, которая кажется единственным клиентским кодом в пакете, просто содержит следующий фрагмент html.

<head>
  <script type="text/javascript" src="https://js.stripe.com/v2/"></script>
  <script type="text/javascript" src="https://checkout.stripe.com/checkout.js"></script>
</head>

Таким образом, я думаю, что ваш импорт просто отменяет глобальную переменную. Вы пытались удалить свой оператор импорта? (Пожалуйста, простите мое почти полное незнание о метеоре - возможно, я здесь далеко за пределами базы).

person speckledcarp    schedule 03.06.2017
comment
когда я удаляю импорт, он дает мне ReferenceError: Stripe не определен - person Art; 03.06.2017
comment
Я предполагал, что github.com/tyler-johnson/stripe-meteor репозиторий github для пакета, который вы пытаетесь использовать. Немного покопавшись, оказывается, что этот файл github.com/ tyler-johnson / stripe-meteor / blob / master / package.js - вот что сообщает Meteor, как обращаться с пакетом. Похоже, он вызывает api.export('STRIPEMETEOR'), так что ... может быть, попробовать использовать import {STRIPEMETEOR}? - person speckledcarp; 04.06.2017

Мне помогло добавление этого пакета "stripe": "^ 4.9.0" в package.json в дополнение к mrgalaxy: stripe в .meteor / packages.

person Art    schedule 04.06.2017