【发布时间】:2019-06-12 21:35:51
【问题描述】:
我们的应用程序不再能够使用 tns 核心函数 addCssFile()。该函数根本没有被调用。
我尝试通过调用组成的文件名来更改其中一个 addCssFile() 调用。它不会触发任何错误,并且代码似乎直接跳过它。我们没有对此脚本进行任何更改,但突然间,这个函数完全没有任何作用。
我刚刚在代码中添加了import addCssFile部分,它说“模块没有导出成员”
import * as applicationSettings from 'tns-core-modules/application-settings';
import { localize } from 'nativescript-localize';
import { ToastDuration, Toasty } from 'nativescript-toasty';
import { fromObject } from 'tns-core-modules/data/observable';
import { Page, topmost } from 'tns-core-modules/ui/frame';
import {addCssFile} from 'tns-core-modules/ui/core/view';
const source = fromObject({});
source.set('settingsItems', [
{ name: localize('ColorSchemeMenu.ob'), enabled: true },
{ name: localize('ColorSchemeMenu.bw'), enabled: true },
{ name: localize('ColorSchemeMenu.rw'), enabled: true },
{ name: localize('ColorSchemeMenu.py'), enabled: true }
]);
export function onNavigatingTo(args: any) {
const page = args.object;
page.bindingContext = source;
}
export function settingsItemTapped(args: any) {
const button = args.object;
const homePage = button.page.navigationContext.homePage as Page;
const currentTheme = applicationSettings.getString('theme', 'blue');
if (button.text === localize('ColorSchemeMenu.ob')) {
//Orange
homePage.addCssFile('themes/orange.css');
applicationSettings.setString('theme', 'orange');
} else if (button.text === localize('ColorSchemeMenu.bw')) {
// Blue
homePage.addCssFile('themes/blue.css');
applicationSettings.setString('theme', 'blue');
} else if (button.text === localize('ColorSchemeMenu.rw')) {
// Red
homePage.addCssFile('themes/red.css');
applicationSettings.setString('theme', 'red');
} else if (button.text === localize('ColorSchemeMenu.py')) {
// Purple
//homePage.addCssFile('themes/purple.css');
homePage.addCssFile('themes/needstofail.css');
applicationSettings.setString('theme', 'purple');
}
console.log('\n\ncolor scheme has been set to: ', applicationSettings.getString('theme'), '\n\n');
new Toasty(
`${localize('ColorSchemeMenu.changedMsg')} ${button.text}`,
ToastDuration.SHORT
).show();
//transition back to settings page after selecting color scheme
topmost().navigate({
moduleName: 'home/home-page',
animated: true,
transition: {
name: 'slideRight'
}
});
}
export function homeBtnTapped(args: any) {
topmost().navigate({
moduleName: 'home/home-page',
animated: true,
transition: {
name: 'slideRight'
}
});
}
单击设置页面上的任何按钮应将 css 信息添加到主页并更改对象颜色。该应用程序识别出按钮被按下,但没有发生 css 更改。手动更改主页的 css 文件确实会改变页面的外观。
【问题讨论】:
-
当然不是导出成员,只是View实例的私有方法,为什么要导入呢?
-
@Manoj 我现在正在尝试任何事情。那仍然没有回答我的问题,为什么该方法会停止工作?
-
对不起,我不是想回答,而是想了解您为什么要导入一个不存在的方法,它可能只会引入一个 TS 错误。
addCssFile应该可以工作,如果您有问题,请分享一个 Playground 示例,在该示例中可以重现该问题。 -
我如何设置游乐场,以及如何在不提供整个应用程序代码的情况下进行设置? @Manoj
-
除了重现问题所需的示例代码外,您无需共享任何内容,请使用play.nativescript.org
标签: javascript css nativescript