Não está trazendo os dados vindo de um contexto

3 respostas
react
A

Galera, vê se vocês podem me ajudar a identificar esse problema.

Eu tenho um contexto chamado posts, e ele deveria mostrar os dados vindo da API no arquivo que eu chamar ele, porém se eu dou um console.log no state dentro do arquivo de contexto ele tá mandando os dados da API pra lá, porém seu eu dou um console.log no arquivo não qual eu quero usar o contexto, ele mostra um array vazio. Segue abaixo as imagens para vocês situarem.

Captura de tela de 2022-09-21 13-11-54

Captura de tela de 2022-09-21 13-12-13

3 Respostas

D

Um exemplo de ContextProvider:

import React, { createContext, useContext, useState } from "react";

const CountContext = createContext();

const CounterProvider = ({ children }) => {
  const [value, setValue] = useState(0);
  const handleIncrement = () => setValue(value + 1);
  return (
    <CountContext.Provider value={{ value, handleIncrement }}>
      {children}
    </CountContext.Provider>
  );
};

export const useCount = () => {
  const context = useContext(CountContext);
  const { value, handleIncrement } = context;
  return { value, handleIncrement };
};

export default CounterProvider;

Perceba que o value tem duas {{ }}, porque você deve passar um objeto e não o valor literal deve ser isso! coloque value={{posts}}, acho que já vai resolver

A

Fiz isso amigo como voce mencionou, porém após isso apresenta um outro erro.

D

No createContext não precisa tipar, ou seja,

export const PostsContext = createContext();

porque o tipo vai direto no value, como está no meu exemplo anterior

Criado 21 de setembro de 2022
Ultima resposta 23 de set. de 2022
Respostas 3
Participantes 2