[Question] Why cant I pass state when I use navigate(-1)
sas604 opened this issue · comments
Hello,
Why when I use navigate and pass it -1, the state is not being applied.
This works
<button onClick={ ()=> navigate('/', {state:{id:12345})}>back</button>
But this does not
<button onClick={ ()=> navigate(-1, {state:{id:12345})}>back</button>
What am I doing wrong?
Than you.
which navigate are you using?
if you are using history.navigate
, it is implemented this way
Lines 75 to 78 in e203fe6
which navigate are you using?
if you are using
history.navigate
, it is implemented this wayLines 75 to 78 in e203fe6
So, the state is not being passed if there a number in the place of to? Is there another way to navigate to the previous page and pass the state?
you can add a wrapper around it.
maybe using something like this
const source = createMemorySource('/') // default route
// will be used in reach-router provider
const history = createHistory(source)
const { navigate } = history
const dangerouslyGoToLastRoute = async state => {
try {
source.history.go(-1)
const lastRoute = source.history.entries[source.history.index].pathname
source.history.entries.pop()
if (lastRoute) await navigate(lastRoute, { replace: true, state })
} catch (error) {
console.log(error)
}
}