#javascript #nativescript #node-modules
#javascript #nativescript #узел-модули
Вопрос:
Проблема: Использование модулей NPM из NativeScript с использованием Core Javascript
Я новичок в NativeScript и пытаюсь использовать модуль FancyAlert NPM:
https://github.com/NathanWalker/nativescript-fancyalert
В своем readme они показывают очень простой пример использования TypeScript, вот так:
import { TNSFancyAlert, TNSFancyAlertButton } from "nativescript-fancyalert";
.
.
.
public showSuccess() {
TNSFancyAlert.showSuccess(
"Success!",
"Fancy alerts are nice.",
"Yes they are!"
);
}
и в их XML-файле они просто называют это как обычно:
<Button text="Alert Success" tap="{{showSuccess}}" />
Как преобразовать это в core JS
Итак, я не использую TypeScript. Я не могу заставить это простое предупреждение работать. Я пытался:
в моем main-view-model.js
const fancyAlert = require("nativescript-fancyalert");
.
.
.
fancyAlert.showSuccess(
"Success!",
"You are logged in.",
"Success!"
);
не работает.
Кто-нибудь может помочь мне использовать этот модуль с использованием core JS?
Спасибо.
Комментарии:
1. github.com/NathanWalker/nativescript-fancyalert/issues/24
Ответ №1:
Попробуйте: fancyAlert.TNSFancyAlert.showSuccess()
.
[РЕДАКТИРОВАТЬ] Это действительно должно сработать, поскольку это зеркальное отражение решения, приведенного в файле проблем, на который ссылается Нарендра Монгия в вашем вопросе. Следует иметь в виду, что это обещание, поэтому давайте добавим catch()
блок, чтобы выявить любые ошибки.
const fancyAlert = require("nativescript-fancyalert");
// ...
fancyAlert.TNSFancyAlert.showSuccess(
"Success!",
"You are logged in.",
"Success!"
)
.then((resolution) => {
console.log("[TNSFancyAlert] showSuccess() succeeded.", resolution);
})
.catch((error) => {
console.error("[TNSFancyAlert] showSuccess() failed.", error);
});
Вы также можете обнаружить, что просто вызываете его не из того места в своем коде.
Комментарии:
1. @JohnS. Я отредактировал для уточнения; как насчет сейчас?
2. @JohnS. Я заметил, что в вашем примере JS контекст вызова fancy alert неясен; вы оборачиваете это внутри
showSuccess
функции, верно? Имейте в виду, что вы должныshowSuccess
правильно связать XML и JS-файл, чтобы он работал. Смотрите документацию по привязке данных для получения дополнительных примеров (как в TypeScript, так и в JavaScript). Вы также можете обратиться к TypeScript Playground , чтобы преобразовать любые фрагменты TS, которые вы найдете в другом месте, в JS.3. во-первых, большое спасибо, что нашли время, чтобы попытаться мне помочь. Это странно…. Я использовал ваш код, и приложение запускается, но предупреждения нет, и ошибки тоже. Вот он на игровой площадке: play.nativescript.org/?template=play-jsamp;id=vCLv25amp;v=2 Вы видите, где я здесь ошибаюсь??
4. Ваша игровая площадка показывает ошибку, ОШИБКА: [TNSFancyAlert] Сбой showSuccess(). Ошибка ссылки: не удается найти переменную: SCLAlertView