Я создаю новый проект Meteor 1.3, и у меня возникают проблемы с интеграцией Auth0. Я следую руководству здесь, но чтобы все усложнить, я использую ES2015. модули, а также React, так что я перевожу на ходу.
После запуска meteor add auth0:lock
в учебнике говорится, что я должен запустить следующий JS на клиенте:
Template.Auth0Login.events({
'click button.login'(event, instance) {
lock.show();
},
}
Итак, мой файл app/imports/ui/components/Navbar.jsx
выглядит так:
1| import React, {Component} from 'react';
2|
3| export default class Navbar extends Component {
4| render() {
5| return (
6| <button class='signin' onClick={lock.show()}>Sign In</button>
7| )
8| }
9| }
Визуализированная страница пуста со следующей ошибкой консоли:
Uncaught TypeError: Cannot read property 'show' of undefined
Если я уберу onClick={lock.show()}
, появится кнопка. И в этом есть смысл — как узнать, что такое «замок», не импортировав его? Поэтому я нашел строку импорта в Auth0 руководстве по React и добавил ее в :
1| import React, {Component} from 'react';
2| import Auth0Lock from 'auth0-lock';
3|
4| export default class Navbar extends Component {
5| ...
Вызывает следующую ошибку консоли:
Uncaught Error: Cannot find module 'auth0-lock'
Я попытался переименовать импортированный модуль в auth0:lock
вместо пакета метеора, но безрезультатно.
Кто-нибудь знает, как импортировать Lock в данный компонент React, чтобы можно было использовать эти функции? Или есть другой способ?
Большое спасибо!