Skip to content

Future v7_fetcherPersist still unmounts before data revalidation is triggered #11101

Closed
@brandonculverwork

Description

@brandonculverwork

Reproduction

Create a component that has its own fetcher and unmounts itself, like a fetcher.submit on an object that deletes itself from a list upon resolution resulting in an unmount.
The request finishes, but data revalidation is not triggered. This is with navigation: false.

I can confirm this is the case by using an external fetcher and passing it into the component. It then works as expected.

Maybe this is intentional, but it feels a lot less usable in this kind of use case.

module.exports = {
  ignoredRouteFiles: ["**/.*"],
  serverModuleFormat: "cjs",
  serverPlatform: "node",
  tailwind: true,
  future: {
    v3_fetcherPersist: true,
  },
  };

System Info

System:
    OS: macOS 14.1.2
    CPU: (12) arm64 Apple M2 Pro
    Memory: 1.56 GB / 32.00 GB
    Shell: 5.9 - /opt/homebrew/bin/zsh
  Binaries:
    Node: 20.9.0 - ~/.nvm/versions/node/v20.9.0/bin/node
    npm: 10.1.0 - ~/.nvm/versions/node/v20.9.0/bin/npm
    pnpm: 8.10.2 - ~/.nvm/versions/node/v20.9.0/bin/pnpm
  Browsers:
    Chrome: 119.0.6045.199
    Safari: 17.1.2
  npmPackages:
    @remix-run/css-bundle: 2.3.1 => 2.3.1
    @remix-run/dev: 2.3.1 => 2.3.1
    @remix-run/eslint-config: 2.3.1 => 2.3.1
    @remix-run/express: 2.3.1 => 2.3.1
    @remix-run/node: 2.3.1 => 2.3.1
    @remix-run/react: 2.3.1 => 2.3.1
    @remix-run/serve: 2.3.1 => 2.3.1

Used Package Manager

pnpm

Expected Behavior

The request would persist the fetcher and trigger data revalidation.

Actual Behavior

It does not trigger data revalidation like it normally would if not unmounted.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions