本日ちょっとハマったのでご紹介。
Onsen UI の Tabbar コンポーネントを実装する際に、下記のようなエラーが発生し、タブの切り替えが正常に行えない現象が発生しました。
Uncaught TypeError: t._show is not a function
Uncaught (in promise) TypeError: r.pageElement._hide is not a function
公式ページのサンプルコードをそのまま転載しても動かず、エラーメッセージで検索してみても有効そうな記事がヒットせず、だったので、デバッグがかなり大変でした…。
で、対処方法ですが、Tabbar の renderTabs 関数内で定義している content 内に問題がありました。
下記のように、content で指定している要素を <Page> で囲むとエラーが解決できました!
<Tabbar onPreChange={({index}) => this.setState(index)}
  position='bottom'
  index={this.state.index}
  renderTabs={(activeIndex, tabbar) => [
    {
      content: <Page>Home</Page>,
      tab: <Tab label="Home" icon="md-home" />
    },
    {
      content: <Page>Settings</Page>,
      tab: <Tab label="Settings" icon="md-settings" />
    }]
  }
/>
行数でいうと、7 行目と 11 行目です。
私は、実際に表示したいコンポーネントを指定していたのですが、そのコンポーネントを同じように <Page> で囲むと、自前のページも問題なく表示できました。
エラーメッセージに pageElement とあったので、もしかして…という勘が働きましたが、気付かなければ数時間かかっていただろうなと思います。
早めに気付けて良かったですが…こんなの分からないよ!
以上、Onsen UI の Tabbar が正常に動作しない時の対処法でした。
ご参考になれば幸いです。
 
					         
               
                       
                