@rodrigo.pedra I'm using inertia-react instead of inertia-vue. Maybe that's the difference? I am also using Firefox, inertia-laravel, and all of my responses are inertia responses.
I tried using 'popstate' instead, but, while this did capture the back button, it did so only after the new page was loaded, while what I need is a way to prevent the browser navigating away in the first place.
Finally, I tried using react-router-dom, but this seems like it will require me to use react router to set the app root rather than Inertia, so it would defeat the purpose of using Inertia.
I guess I'll write some logic to save the state of the form in local storage and restore it if the user cancels out of the back action from the warning in the 'popstate' listener, though this is far from ideal.