A Navigator is a "location changer"; it's how you get to different locations.

Every history instance conforms to the Navigator interface, but the distinction is useful primarily when it comes to the low-level <Router> API where both the location and a navigator must be provided separately in order to avoid "tearing" that may occur in a suspense-enabled app if the action and/or location were to be read directly from the history instance.

interface Navigator {
    createHref: ((to: To) => string);
    encodeLocation?: ((to: To) => Path);
    go: ((delta: number) => void);
    push(to: To, state?: any, opts?: NavigateOptions): void;
    replace(to: To, state?: any, opts?: NavigateOptions): void;
}

Properties

createHref: ((to: To) => string)

Type declaration

    • (to): string
    • Returns a valid href for the given to value that may be used as the value of an attribute.

      Parameters

      Returns string

encodeLocation?: ((to: To) => Path)

Type declaration

    • (to): Path
    • Encode a location the same way window.history would do (no-op for memory history) so we ensure our PUSH/REPLACE navigations for data routers behave the same as POP

      Parameters

      • to: To

        Unencoded path

      Returns Path

go: ((delta: number) => void)

Type declaration

    • (delta): void
    • Navigates n entries backward/forward in the history stack relative to the current index. For example, a "back" navigation would use go(-1).

      Parameters

      • delta: number

        The delta in the stack index

      Returns void

Methods