ionic-framework: bug: ion-back-button does not display if wrapped in custom component
Bug Report Ionic version: [x] 4.0.0.rc-1
Current behavior: I do see in the element list that the second page in the stack gets an can-go-back class. However the ion-back-button remains invisible (display:none)
Expected behavior: ion-back-button should be visible. As there is a previous page in the stack.
Steps to reproduce: I have a page with a sidepanel menu. Which is a tab page. I navigate to the child page with navigateForward(), I can go back either by swiping back or pressing the tab icon.
Ionic info:
Ionic:
ionic (Ionic CLI) : 4.7.0 (/usr/local/lib/node_modules/ionic)
Ionic Framework : @ionic/angular 4.0.0-rc.1
@angular-devkit/build-angular : 0.11.4
@angular-devkit/schematics : 7.2.1
@angular/cli : 7.2.1
@ionic/angular-toolkit : 1.2.2
Cordova:
cordova (Cordova CLI) : 8.1.2 (cordova-lib@8.1.1)
Cordova Platforms : android 7.1.4, ios 4.5.5
Cordova Plugins : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 2.3.1, (and 24 other plugins)
System:
ios-deploy : 1.9.4
NodeJS : v11.6.0 (/usr/local/Cellar/node/11.6.0/bin/node)
npm : 6.5.0
OS : macOS Mojave
Xcode : Xcode 10.1 Build version 10O45e
About this issue
- Original URL
- State: open
- Created 5 years ago
- Reactions: 1
- Comments: 18 (6 by maintainers)
I ran into this issue following the tutorial on ionic’s youtube channel: “Ionic Framework Crash Course (4.0+)”.
Putting
ion-back-button { display: block; }intodetail.page.scsssolved it. The video should be updated to include a note to this affect for people who come across it in the future.Edit: also adding
defaultHref='/home'to the ion-back-button attributes will also fix this. Edit2: also https://ionicframework.com/docs/api/buttons needs to be updated about this aswell.After further investigating I found out that it happens if you wrap the ion-header in another component. So that component actually contains the ion-header
So this won’t work
But if you take out the ion-header
What I did found out is if you got back by swiping back you would get back to the root tab with a visible back button in the header.
I can confirm that adding a dedicated CSS rule like
tabbed-navigator.can-go-back ion-back-button { display: block; }solves the problem. Many related issues, such as what “back” means, are usually related to router configuration.