How to execute logic when NavigationLink is tapped?
Currently it doesn't seem possible to execute additional logic when a navigation link is tapped with the new
NavigationLink(value:) initializer. When the link is tapped it updates path state all the way back at the root
NavigationStack to drive navigation, but there are many times where we need to perform logic after the tap and before the drill down.
For example, after tapping a link we may want to pre-emptively load some data to show on the drill down screen. Or we may want to perform some form validation. Or we may want to track some analytics. This does not seem possible with the current link API.
A workaround is to use
Buttons instead of
NavigationLinks, but then you lose all of the styling and affordances given to links, such as chevrons when used in
If the API for
NavigationLink cannot be changed to accomodate for this, perhaps a new
ButtonStyle could be introduced that allows regular buttons to take on the sty