Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

79
Visualizações
¿Cómo manejar useContext correctamente con cambios frecuentes?

Estoy usando useContext para la administración de estado global con useReducer. Estoy usando WebSocket para recuperar datos de bitcoin cada segundo. Debido a que los datos cambian con frecuencia, mi aplicación se vuelve a procesar cada segundo y tengo cálculos de datos pesados, interfaz de usuario compleja con tablas y etc. Aunque ningún componente es un consumidor de datos de bitcoin, de todos modos, cada componente se vuelve a procesar cada vez que se modifican sus datos.

este es el proveedor de contexto.

 const AppContext = createContext<{ state: InitialStateType; dispatch: Dispatch<ActionType>; }>({ state: initialState, dispatch: () => null, }); const mainReducer: MainReducer = ({btc, common, user }, action) => ({ btc: btcReducer<BTCPayload>(btc, action as BTCReducerActions), user: userReducer<UserPayload>(user, action as UserReducerActions), common: commonReducer<CommonPayload>(common, action as CommonReducerActions), }); const AppProvider: React.FC = ({ children }) => { const [state, dispatch] = useReducer(mainReducer, initialState); return ( <AppContext.Provider value={{ state, dispatch }}> {children} </AppContext.Provider> ); }; export { AppProvider, AppContext };

Y aquí está el envoltorio de la aplicación.

 <AppProvider> <ThemeProvider theme={theme}> <GlobalStyles /> <BrowserRouter> <div className="App"> <AppRoot isBusy={!ready || !isConnected} /> </div> </BrowserRouter> </ThemeProvider> </AppProvider>

He intentado crear proveedores separados, uno para los datos btc y otro para el resto de los datos, pero funciona igual, porque supongo que la razón es que toda la aplicación está dentro de ese proveedor de contexto.

 const AppProvider: React.FC = ({ children }) => { const [state, dispatch] = useReducer(mainReducer, initialState); const appValue = useMemo(() => { return { state, dispatch }; }, [state]); const btcValue = useMemo(() => { return { btc }; }, [btc]); return ( <AppContext.Provider value={appValue}> <BtcContext.Provider value={btcValue}> {children} </BtcContext.Provider> </AppContext.Provider> ); };

Estoy luchando casi 2 días. Necesito empaquetar toda la aplicación con el proveedor porque hay más de 10 componentes que usan datos btc en diferentes rutas.

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda