Notice: The Monaca & Onsen UI Community Forum is shutting down.
For Onsen UI bug reports, feature requests and questions, please use the Onsen UI GitHub issues page. For help with Monaca, please contact Monaca Support Team.
Thank you to all our community for your contributions to the forum. We look forward to hearing from you in the new communication channels.
TypeError: Cannot read property 'newAnimator' of undefined
-
I’ve tried this with
ngx-onsenui 4.0.0-rc1 / onsenui 2.3.3 and
ngx-onsenui 4.1.0 / onsenui 2.5.3
with the same resultEverything else is current. I’m using Chrome on Windows 10.
I’m trying to get <ons-tabbar> to work. I’m using Angular 4. I’m using separate ts and html files and have commented stuff out to provide a minimal set that reproduces the problem. The displayed ts files just log their constructor and ngOnInit access. The AppComponent file also defines the components used in its html.
I’ve got a minimal index.html file and main.ts includes ons-ready.
app-component.html:
<ons-tabbar animation="none"> <ons-tab [page]="initPageComponent" label="Init page" active badge="7"> <ons-icon icon="md-home" size="24px"></ons-icon> </ons-tab> <ons-tab [page]="pageAComponent" label="Page A"> <ons-icon icon="md-settings" size="24px"></ons-icon> </ons-tab> <ons-tab [page]="pageBComponent" label="Page B"> <ons-icon icon="md-pizza" size="24px"></ons-icon> </ons-tab> </ons-tabbar>
xxx-component.html (with commented-out code omitted):
They all have slightly different displayed text.<ons-page> Hello </ons-page>
The <ons-tabbar> is displayed, but no page contents are displayed. The console output, including logs and the error info follows:
main.ts:15 ons.ready! app.component.ts:28 construct AppComponent app.component.ts:33 ngOnInit AppComponent core.es5.js:2925 Angular is running in the development mode. Call enableProdMode() to enable the production mode. init-page.component.ts:18 construct InitPageComponent page-a.component.ts:18 construct PageAComponent page-b.component.ts:18 construct PageBComponent init-page.component.ts:24 ngOnInit InitPageComponent page-a.component.ts:24 ngOnInit PageAComponent page-b.component.ts:24 ngOnInit PageBComponent core.es5.js:1020 ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'newAnimator' of undefined TypeError: Cannot read property 'newAnimator' of undefined at HTMLElement._switchPage (onsenui.js:8845) at onsenui.js:8966 at HTMLElement._loadPageElement (onsenui.js:8293) at onsenui.js:8963 at new ZoneAwarePromise (zone.js:861) at HTMLElement.setActiveTab (onsenui.js:8962) at HTMLElement._onClick (onsenui.js:8215) at onReady (onsenui.js:8344) at Object.ready (onsenui.js:8564) at onsenui.js:8349 at HTMLElement._switchPage (onsenui.js:8845) at onsenui.js:8966 at HTMLElement._loadPageElement (onsenui.js:8293) at onsenui.js:8963 at new ZoneAwarePromise (zone.js:861) at HTMLElement.setActiveTab (onsenui.js:8962) at HTMLElement._onClick (onsenui.js:8215) at onReady (onsenui.js:8344) at Object.ready (onsenui.js:8564) at onsenui.js:8349 at resolvePromise (zone.js:795) at new ZoneAwarePromise (zone.js:864) at HTMLElement.setActiveTab (onsenui.js:8962) at HTMLElement._onClick (onsenui.js:8215) at onReady (onsenui.js:8344) at Object.ready (onsenui.js:8564) at onsenui.js:8349 at onsenui.js:734 at Array.forEach (<anonymous>) at consumeQueue (onsenui.js:733) defaultErrorLogger @ core.es5.js:1020 webpackJsonp.../../../core/@angular/core.es5.js.ErrorHandler.handleError @ core.es5.js:1080 next @ core.es5.js:4503 schedulerFn @ core.es5.js:3635 webpackJsonp.../../../../rxjs/Subscriber.js.SafeSubscriber.__tryOrUnsub @ Subscriber.js:238 webpackJsonp.../../../../rxjs/Subscriber.js.SafeSubscriber.next @ Subscriber.js:185 webpackJsonp.../../../../rxjs/Subscriber.js.Subscriber._next @ Subscriber.js:125 webpackJsonp.../../../../rxjs/Subscriber.js.Subscriber.next @ Subscriber.js:89 webpackJsonp.../../../../rxjs/Subject.js.Subject.next @ Subject.js:55 webpackJsonp.../../../core/@angular/core.es5.js.EventEmitter.emit @ core.es5.js:3621 (anonymous) @ core.es5.js:3912 webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:392 webpackJsonp.../../../../zone.js/dist/zone.js.Zone.run @ zone.js:142 webpackJsonp.../../../core/@angular/core.es5.js.NgZone.runOutsideAngular @ core.es5.js:3844 onHandleError @ core.es5.js:3912 webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.handleError @ zone.js:396 webpackJsonp.../../../../zone.js/dist/zone.js.Zone.runGuarded @ zone.js:158 _loop_1 @ zone.js:673 api.microtaskDrainDone @ zone.js:682 drainMicroTaskQueue @ zone.js:610 Promise resolved (async) scheduleMicroTask @ zone.js:585 resolvePromise @ zone.js:805 ZoneAwarePromise @ zone.js:864 setActiveTab @ onsenui.js:8962 _onClick @ onsenui.js:8215 onReady @ onsenui.js:8344 ready @ onsenui.js:8564 (anonymous) @ onsenui.js:8349 (anonymous) @ onsenui.js:734 consumeQueue @ onsenui.js:733 contentReady @ onsenui.js:744 connectedCallback @ onsenui.js:8320 connectedCallback @ onsenui.js:2816 connectTree @ onsenui.js:2600 (anonymous) @ onsenui.js:35855 _compile @ onsenui.js:8757 (anonymous) @ onsenui.js:8707 (anonymous) @ onsenui.js:734 consumeQueue @ onsenui.js:733 (anonymous) @ onsenui.js:750 webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:392 onInvoke @ core.es5.js:3890 webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:391 webpackJsonp.../../../../zone.js/dist/zone.js.Zone.runGuarded @ zone.js:155 (anonymous) @ zone.js:133 childList (async) (anonymous) @ onsenui.js:35848 webpackJsonp.../../../platform-browser/@angular/platform-browser.es5.js.DefaultDomRenderer2.appendChild @ platform-browser.es5.js:2761 webpackJsonp.../../../core/@angular/core.es5.js.DebugRenderer2.appendChild @ core.es5.js:13626 createText @ core.es5.js:11796 createViewNodes @ core.es5.js:12189 callViewAction @ core.es5.js:12654 execComponentViewsAction @ core.es5.js:12563 createViewNodes @ core.es5.js:12232 createRootView @ core.es5.js:12100 callWithDebugContext @ core.es5.js:13486 debugCreateRootView @ core.es5.js:12803 webpackJsonp.../../../core/@angular/core.es5.js.ComponentFactory_.create @ core.es5.js:9872 webpackJsonp.../../../core/@angular/core.es5.js.ComponentFactoryBoundToModule.create @ core.es5.js:3333 webpackJsonp.../../../core/@angular/core.es5.js.ApplicationRef_.bootstrap @ core.es5.js:4768 (anonymous) @ core.es5.js:4546 webpackJsonp.../../../core/@angular/core.es5.js.PlatformRef_._moduleDoBootstrap @ core.es5.js:4546 (anonymous) @ core.es5.js:4508 webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:392 onInvoke @ core.es5.js:3890 webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:391 webpackJsonp.../../../../zone.js/dist/zone.js.Zone.run @ zone.js:142 (anonymous) @ zone.js:844 webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invokeTask @ zone.js:425 onInvokeTask @ core.es5.js:3881 webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invokeTask @ zone.js:424 webpackJsonp.../../../../zone.js/dist/zone.js.Zone.runTask @ zone.js:192 drainMicroTaskQueue @ zone.js:602 webpackJsonp.../../../../zone.js/dist/zone.js.ZoneTask.invokeTask @ zone.js:503 invokeTask @ zone.js:1427 globalZoneAwareCallback
-
If I remove the “active” setting, the problem doesn’t occur, but I don’t have content displayed.
-
Hi, @vgriffin !
This problem is a bug of Onsen UI Core and related to this issue ticket (OnsenUI/OnsenUI#1926).
You can avoid the problem by
(1) Keep the content of<ons-tab>
empty and useicon
attribute of<ons-tab>
.<ons-tabbar animation="none"> <ons-tab [page]="initPageComponent" icon="md-home" label="Init page" active badge="7"></ons-tab> <ons-tab [page]="pageAComponent" icon="md-settings" label="Page A"></ons-tab> <ons-tab [page]="pageBComponent" icon="md-pizza" label="Page B"></ons-tab> </ons-tabbar>
or
(2) Put<div class="tabbar__content"></div>
and wrap the<ons-tab>
s with<div class="tabbar"></div>
<ons-tabbar animation="none"> <div class="tabbar__content"></div> <div class="tabbar"> <ons-tab [page]="initPageComponent" label="Init page" active badge="7"> <ons-icon icon="md-home" size="24px"></ons-icon> </ons-tab> <ons-tab [page]="pageAComponent" label="Page A"> <ons-icon icon="md-settings" size="24px"></ons-icon> </ons-tab> <ons-tab [page]="pageBComponent" label="Page B"> <ons-icon icon="md-pizza" size="24px"></ons-icon> </ons-tab> </div> </ons-tabbar>
Thank you.