Как предоставить магазин Redux для проекта Remix JS?

Я внимательно следил за Remix Run JS (https://remix.run/) и работал с некоторыми учебными пособиями, однако нигде не нашел ни здесь, ни в Интернете, как реализовать хранилище избыточности:

Я думал в обертке App компонент вроде этого, но я не уверен, что так и должно быть:

      const store = createStore(rootReducer);

export default function App() {
  return (
    <Provider store={store}>
      <html lang="en">
        <head>
          <meta charSet="utf-8" />
          <meta name="viewport" content="width=device-width,initial-scale=1" />
          <Meta />
          <Links />
        </head>
        <body>
          <Link to="/posts">Posts</Link>
          <Outlet />
          <ScrollRestoration />
          <Scripts />
          {process.env.NODE_ENV === "development" && <LiveReload />}
        </body>
      </html>
    </Provider>
  );
}

2 ответа

Почему вы хотите использовать Redux с Remix? Загрузчики, действия и т. д. предназначены для правильной обработки ваших данных на стороне сервера (действия будут перезапускать загрузчики и т. д.). Для другого состояния на стороне клиента вы можете использовать React Context и прочее. Поэтому я не думаю, что Redux действительно нужен в приложении Remix. Дело не в том, что это невозможно, но я думаю, вам следует подумать, как не использовать его.

в app/root.tsx вы можете добавить его вот так

      import {Provider} from 'react-redux';
import {store} from '~/redux/store'; 
.....

export default function App() {
const nonce = useNonce();
const data = useLoaderData<typeof loader>();
return (
<html lang="en">
  <head>
    <meta charSet="utf-8" />
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <Meta />
    <Links />
  </head>
  <body>
    <Provider store={store}> // here
      <Layout {...data}>
        <Outlet />
      </Layout>
    </Provider>
    <ScrollRestoration nonce={nonce} />
    <Scripts nonce={nonce} />
    <LiveReload nonce={nonce} />
  </body>
</html>);
}
Другие вопросы по тегам