Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

320
Vistas
redux-toolkit nextjs server-side rehydration

I am trying to:

  1. get server-sided headers (req.headers.x-my-custom-header)
  2. getInitialProps (_document) dispatch x-my-custom-header to store (server-sided) <- PROBLEM
  3. rehydrate x-my-custom-header to client

_document.tsx:

MyDocument.getInitialProps = async (context: DocumentContext) => {
  const initialProps = await Document.getInitialProps(context);
  const isServer = context.req;
  if (isServer) {
    // const site = context.req?.headers['x-site']
    store.dispatch(setSite('foo')); // <- setting state to 'foo'
  }
  const initialState = store.getState();
  console.log('initialState', initialState); // <- has 'bar' in it
  return {
    ...initialProps,
    initialState,
  };
};

my slice

import { createSlice, Slice } from '@reduxjs/toolkit';

export const name = 'settings';

export enum Sites {
  foo = 'foo',
  bar = 'bar',
}

export type SettingsState = {
  site: Sites;
};

const initialState: SettingsState = {
  site: Sites.bar,
};

const slice: Slice<SettingsState> = createSlice({
  name,
  initialState,
  reducers: {
    setSite(state, action: { type: string; payload: Sites }) {
      state.settings.site = action.payload;
    },
  },
});

export const { setSite } = slice.actions;

export default slice.reducer;

Any ideas what could be the problem here?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda