Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.

Quando trabalhamos com ReactJS e Webpack, é comum encontrar dificuldades ao importar e usar módulos, especialmente ao tentar fazer POSTs com axios.
Recentemente, me deparei com um erro que dizia que o módulo importado não era uma função, mesmo tendo uma função getAll funcionando perfeitamente. A decisão fica mais saudável quando o time consegue medir o impacto depois.
O problema geralmente está na forma como o módulo está sendo exportado e importado.
Se você estiver usando export default, certifique-se de importar assim: O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar.
import ShiftService from 'caminho/para/shifts'.
E ao exportar, garanta que seja:
export default {
getAll,
postData
}
Se estiver usando named exports, o import deve ser:
import { getAll, postData } from 'caminho/para/shifts'. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta.
No meu caso, percebi que o erro ocorreu porque o módulo foi exportado como objeto, mas importado como uma função única, causando esse conflito. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar.
Para quem está na batalha, minha dica é revisar as formas de exportação e importação. Muitas vezes, o problema é só uma questão de sintaxe. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte.
Alguém já passou por isso e teve que fazer alguma gambiarra ou encontrou uma solução mais elegante? O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar.
---
Verdade, Guto. E às vezes o problema é que a importação está apontando pro arquivo errado ou com o caminho errado. Fica de olho nisso também.
Já passei por isso. No meu caso, era só ajustar a forma de exportar, mas às vezes o cache do Webpack fica te sacaneando. Recomendo limpar o cache ou reiniciar o servidor de dev.
No meu time, às vezes a gente faz um export default com um objeto só, aí na hora de usar tem que importar tudo de uma vez. Se esquecer, dá nisso. Beleza que é uma besteira, mas dá trabalho depois.
Como assim? uma coisa que ajuda é usar o console.log do módulo importado antes de usar a função. Assim você já vê se o que veio é mesmo o que esperava.