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

769
Visualizações
Reaccionar, obteniendo TypeError: intento no válido de desestructurar una instancia no iterable cuando se usa el estado global con Context

Intento usar el contexto para acceder al estado globalmente pero obtengo el siguiente error:

 TypeError: Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.

Traté de resolver el problema adaptando el uso del contexto de esta pregunta de desbordamiento de pila .

Archivo del que quiero obtener el estado:

 const test = () => { const [selectedValueRound, setSelectedValueRound] = useState("10 rounds"); return ( <View> <RoundContext.Provider value={[selectedValueRound, setSelectedValueRound]} > <View> <Picker selectedValue={selectedValueRound} onValueChange={(itemValue, itemIndex) => setSelectedValueRound(itemValue) } > <Picker.Item label="1 round" value="0"></Picker.Item> <Picker.Item label="2 rounds" value="1"></Picker.Item> </Picker> </View> </RoundContext.Provider> </View> ); };

Archivo para el contexto:

 export const RoundContext = createContext(false);

Archivo donde trato de llamar al contexto y aparece el error:

 const SomeFile = () => { const [selectedValueRound, setSelectedValueRound] = useContext(RoundContext); return ( <View> <Text>{selectedValueRound}</Text> </View> ); }; export default SomeFile;
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Para que esto funcione, asegúrese de envolver SomeFile dentro de RoundContext.Provider , ya que por ahora parece que no lo está haciendo.

Solo los componentes envueltos dentro del proveedor pueden consumir el contexto.

Además, asegúrese de que cada componente de React comience con una letra mayúscula, Test en lugar de test

 const Test = () => { const [selectedValueRound, setSelectedValueRound] = useState("10 rounds"); return ( <View> <RoundContext.Provider value={[selectedValueRound, setSelectedValueRound]} > <View> <Picker selectedValue={selectedValueRound} onValueChange={(itemValue, itemIndex) => setSelectedValueRound(itemValue) } > <Picker.Item label="1 round" value="0"></Picker.Item> <Picker.Item label="2 rounds" value="1"></Picker.Item> </Picker> </View> <SomeFile/> </RoundContext.Provider> </View> ); };
about 4 years ago · Juan Pablo Isaza Relatório
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