Open Nicell opened 1 year ago
I was able to create a workaround by setting the getId
prop on the Stack.Screen
s. See https://github.com/react-navigation/react-navigation/issues/9090
Still not sure why this behavior showed up with SDK 49 specifically.
I wasn't able to reproduce all the screens were pushed as expected, with no popping.
@EvanBacon Here's a video of my minimal reproducible example in the latest Expo Go on an iPhone simulator. All I did was yarn start, open on the simulator, and press each link.
https://github.com/expo/router/assets/9439650/41a73279-3501-42db-ab12-0c15a868d322
for those who facing the same issue use following code
<Stack.Screen getId={({ params }) => params.id} name="user/[id]" />
getID function makes it work
dont forget to spread params
@snowdigital
Lifesaver! I can go sleep now :D
@snowdigital thank you!
@snowdigital dude you have no idea how helpful this was! absolute rockstar thank you!!
Which package manager are you using? (Yarn is recommended)
yarn
Summary
As of SDK 49 and expo-router v2, when a stack has links pressed on in the following order:
/Nick
(/[user]
)/two
(/two
)/Joe
(/[user]
)The stack navigator goes back to the
/Nick
screen when the/Joe
link is pressed on the/two
page instead of pushing a new screen onto the stack. This behavior does not happen before upgrading. While it does update the params, I was not expecting search params to update for screens, so my app doesn't handle it, and I don't want it to reuse screens. Continually pushing on the stack is better for my app's UX, and I'm not sure if it's achievable with the new update.Minimal reproducible example
https://github.com/Nicell/stack-test This repo is built on the tabs@49 template. The 2nd commit is just applied on top of it.