RootNavigation.js 806 B

1234567891011121314151617181920212223242526272829303132333435
  1. /* eslint-disable no-unused-expressions */
  2. // RootNavigation.js
  3. import * as React from 'react'
  4. import { CommonActions, StackActions } from '@react-navigation/native'
  5. export const navigationRef = React.createRef()
  6. export function navigate(name, params) {
  7. navigationRef.current?.navigate(name, params)
  8. }
  9. export function replace(name, params) {
  10. navigationRef.current?.dispatch(StackActions.replace(name, params))
  11. }
  12. export function goBack() {
  13. if (navigationRef.current.getRootState().index > 0) {
  14. navigationRef.current?.goBack()
  15. }
  16. }
  17. export function reset(name, params) {
  18. navigationRef.current?.dispatch(
  19. CommonActions.reset({
  20. index: 0,
  21. key: null,
  22. routes: [
  23. {
  24. name,
  25. params,
  26. },
  27. ],
  28. })
  29. )
  30. }