"Error: Root should be either UIViewController or UIView" Nativescript
"Error: Root should be either UIViewController or UIView" Nativescript
所以我尝试在新模块中创建一个组件,然后在 'app' 中使用它,但出现此错误:
Error: Root should be either UIViewController or UIView
这是我的 sample.module.ts:
import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
import { NativeScriptCommonModule } from 'nativescript-angular/common';
import { SampleComponent } from './sample/sample.component';
@NgModule({
declarations: [SampleComponent], // <= this is the component I want to use
exports: [SampleComponent],
imports: [
NativeScriptCommonModule
],
schemas: [NO_ERRORS_SCHEMA]
})
export class SampleModule { }
然后我的示例组件:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'ns-sample',
templateUrl: './sample.component.html',
styleUrls: ['./sample.component.css'],
moduleId: module.id,
})
export class SampleComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
然后在我的应用程序中,我将像这样导入模块:
imports: [
// ... other modules
SampleModule,
],
当我尝试在 app.component.html 中使用我的 SampleComponent 选择器时会触发错误消息,如下所示:
<ns-sample></ns-sample>
我一直在四处寻找,但我一直在发现人们忘记导出模块本身的错误。我已经这样做了,所以我不确定我做错了什么。
所以问题是我如何使用在应用程序内的不同模块中声明的组件?
提前谢谢大家!!
因为它是一个自定义组件,当您将它作为根元素放置时,用 ContentView / StackLayout 包裹它。
<StackLayout>
<ns-sample></ns-sample>
</StackLayout>
所以我尝试在新模块中创建一个组件,然后在 'app' 中使用它,但出现此错误:
Error: Root should be either UIViewController or UIView
这是我的 sample.module.ts:
import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
import { NativeScriptCommonModule } from 'nativescript-angular/common';
import { SampleComponent } from './sample/sample.component';
@NgModule({
declarations: [SampleComponent], // <= this is the component I want to use
exports: [SampleComponent],
imports: [
NativeScriptCommonModule
],
schemas: [NO_ERRORS_SCHEMA]
})
export class SampleModule { }
然后我的示例组件:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'ns-sample',
templateUrl: './sample.component.html',
styleUrls: ['./sample.component.css'],
moduleId: module.id,
})
export class SampleComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
然后在我的应用程序中,我将像这样导入模块:
imports: [
// ... other modules
SampleModule,
],
当我尝试在 app.component.html 中使用我的 SampleComponent 选择器时会触发错误消息,如下所示:
<ns-sample></ns-sample>
我一直在四处寻找,但我一直在发现人们忘记导出模块本身的错误。我已经这样做了,所以我不确定我做错了什么。
所以问题是我如何使用在应用程序内的不同模块中声明的组件?
提前谢谢大家!!
因为它是一个自定义组件,当您将它作为根元素放置时,用 ContentView / StackLayout 包裹它。
<StackLayout>
<ns-sample></ns-sample>
</StackLayout>