Curso React: Adicionando novos serviços - #34

Поделиться
HTML-код
  • Опубликовано: 8 фев 2025
  • 🔴 CURSO COMPLETO DE REACT: www.udemy.com/...
    📘 Ebook gratuito de React: www.horadecoda...
    ★ Nossos Cursos: www.horadecoda...
    Nesta aula você vai criar os novos serviços do projeto
    Ou seja, contabilizar o custo e também detalhar o que será feito com o orçamento total
    Mais uma passo rumo a conclusão do nosso projeto em #React
    Repositório: github.com/mat...
    ★ Livros recomendados: www.horadecoda...
    ▶ Instagram: @horadecodar
    ▶ GitHub: github.com/mat... 🔷 Telegram: t.me/horadecodar .
    🟣 Discord Hora de Codar: / discord

Комментарии • 106

  • @wesleymoraes1478
    @wesleymoraes1478 Год назад +6

    Tive que pausar aos 14:37 porque estava dando erro. E foi erro de digitação aqui!
    length e Service eu digitei tudo errado kk
    Tive que abrir o código fonte do professor para poder comparar! Acho deu certo e vou prosseguindo :3

  • @dellond
    @dellond 2 года назад +6

    Muito bom curso. Abrindo a mente no mundo do React. Parabéns, Matheus

  • @mateusomateus
    @mateusomateus Год назад

    Muito bom! Aprendendo bastante até aqui.

  • @uosp3.
    @uosp3. 2 года назад +4

    Quem está com problemas de não aparecer a mensagem o erro está no instante 8:37 do vídeo. O Matheus coloca chaves dentro do parêntese do state e o correto é colchete. Ele deve ter feito a correção no dele mas não mostrou no vídeo.

    • @bck_cs2
      @bck_cs2 Год назад +3

      Fiz a alteração que você disse, mas ainda continua aparecendo a mensagem de erro apenas uma vez. Alguém conseguiu contornar esse problema?

    • @thalesoliveira4635
      @thalesoliveira4635 6 месяцев назад +1

      acho que não mano, a variável service é uma hashmap ou dicionário pra galera do python, nao faz sentido ele declarar como lista se na função handleChange ele da um setService e usa sintaxe de dicionario com "chave : valor"

  • @marcosf.6203
    @marcosf.6203 2 года назад +3

    Quem me dera chegar a esse nível de programar de cabeça como o Matheus...😆

    • @leonardopezadelo
      @leonardopezadelo 2 года назад +4

      A prática leva a perfeição.
      Pior é para quem era uma negação e achava que programação nunca entraria na minha vida......
      E VOA Lá, to aqui estudando programação....
      Sou da area de redes, mikrotik, cisco, servidores ubuntu, centos..... windows server....
      Afinal, aonde da a grana é a PROGRAMAÇÃO

    • @marcosf.6203
      @marcosf.6203 2 года назад

      @@leonardopezadeloÉ isso aí brow, estudar sempre! A minha dificuldade é em memorizar tanto código. Fora que as vezes eu me perco e não sei colocar em prática o que aprendi, como exemplo, o que serve para quê...kkk. Estou fazendo em paralelo ao curso de desenvolvimento web front end, uma facul de TI, aí já viu, muita coisa na mente...

    • @leonardopezadelo
      @leonardopezadelo 2 года назад

      @@marcosf.6203 Eu entreina area de DB, não fazia sentido só saber banco de dados. eu precisava aprender programação também.
      Meu objetivo é se tornar full

  • @cortespoliglota
    @cortespoliglota 2 года назад +2

    Topp, quase acabando o curso e consegui resolver todos os problemas que aparecerão

  • @brunomateus7720
    @brunomateus7720 3 года назад +1

    curso bom de mais ✌, bora que é hora de codar mn

  • @stones969
    @stones969 2 года назад +1

    Matheus, achei interessante a forma como você colocou o id nos services para ser utilizado como key na iteração, porém, não poderia simplesmente ter feito o map e utilizado o index como key?

  • @nedersimoes
    @nedersimoes 3 года назад +1

    bom demais Mestre!!! 👌

  • @alexsebode1647
    @alexsebode1647 Год назад +3

    Matheus, parabéns pela atitude e pelo conteúdo....as msg de validação, mesmo colocando no começo da function, setMessage('') só dar certo quando chamado uma vez, se chamar mais uma vez, a msg não aparece...Tem algum contorno?

  • @ederbitten4731
    @ederbitten4731 10 месяцев назад

    Conteudo muito bom parabens, mais fique com uma duvida se algum conseguir da uma clareada agradeço. Dentro da function ServiceForm({handleSubmit, textBtn, projectData}){ temos a função - function submit(e) onde temos handleSubmit(projectData), ele está sendo usado como metodo ou como uma props não ficou claro pra mim. desde já agradeço vlw

  • @valeriopro228
    @valeriopro228 2 года назад +1

    Esses métodos dentro de métodos é para ser confuso mesmo?

  • @alexandrosantos6596
    @alexandrosantos6596 Год назад

    Matheus parabéns pelo curso estou aprendendo muito com ele.
    Cara já estou nesta aula há um bom tempo não consigo avançar. Todo o processo de salvar o serviço ocorre sem disparar erros, no entanto os dados não são persistidos no arquivo. Debuguei e vi que os serviços estão chegando, o objeto com o projeto inteiro + serviço também está chegando, no entanto não persiste. Sei que pode ser muitas coisas, no entanto sigo com a esperança que aponte uma direção.
    Monitorando até o ponto de submit o objeto project está completo, porém ao analisar a response o project está sem o [serviço].
    Quando eu faço envio pelo Insomnia ele consegue persistir no arquivo json certinho.

    • @alexandrosantos6596
      @alexandrosantos6596 Год назад

      Consegui resolver... eu tinha digitado "hearders" ao invés de "headers" no fetch().

  • @CamaradaSniks
    @CamaradaSniks 17 дней назад

    Estou com erro na hora de aparecer a mensagem de "Orçamento ultrapassado" na função createService().
    A mensagem simplesmente não aparece. Eu vi que no console, aparece um erro bem rápido e some. Eu pensei em colocar um setTime talvez, mas não sei se vai resolver. Alguém mais com esta dúvida ou sabe como resolve?

  • @LeSpaceHistory
    @LeSpaceHistory Год назад +1

    Quem vai chegar no fim do curso? R: EU!!!!! (MARATONANDO) Bora!!!!! (Puxa, só 5 mil chegaram aqui??)

  • @maclaurinrocha2881
    @maclaurinrocha2881 3 года назад +1

    ​@UCDoFiMhpOnLFq1uG4RL4xag, @Matheus Battisti - Hora de Codar
    , no fetch que você fez nessa aula você mandou para o body também, é necessário mandar em um put também? para que serve enviar para um body ?

  • @CAQP
    @CAQP 11 месяцев назад

    Eu montei um card dentro de uma tag Link. Isso faz com que ele seja clickavel. Agora preciso colocar um botão dentro deste card. O problema é que o click no botão excuta a ação que foi reservada ao click no card. Como faço para que o botão excute a ação reservada para ele?

  • @evandroflorscuk1116
    @evandroflorscuk1116 Год назад

    Visto

  • @keby10
    @keby10 2 года назад

    Utilizei a operação de método PUT no lugar de Path, pois estava dando problema no controle de métodos.

    • @filipesilva2322
      @filipesilva2322 Год назад

      eu tbm tive problemas com o verbo path, tbm so consegui alterando para o put

  • @feliphrenaud1699
    @feliphrenaud1699 Год назад

    para quem estiver tendo um problema relacionado ao PUSH
    todas as palavras que estão como services
    troquem para service SEM O S

    • @nicholasthomazmagri6857
      @nicholasthomazmagri6857 Год назад

      Mesmo trocando para SEM O S a palavra service, ainda aparece o erro de que "Cannot read properties of undefined (reading 'service') e fala que é no submit function no ServiceForm.js file.

  • @leoalmeida6138
    @leoalmeida6138 2 года назад +3

    Galera, tudo bem? Preciso de ajuda, estou com o erro "Cannot read properties of undefined (reading 'push')", já faz um tempo que eu to tentando ver e mesmo alterando o services para service não da certo, alguém consegue me ajudar? No serviceForm também coloquei const [service, setService] = useState([]), está tudo ok até aqui, porém, persiste o erro.

    • @guilhermeviana6342
      @guilhermeviana6342 2 года назад

      Conseguiu resolver? Exatamente mesma coisa aqui...

    • @juniorsouza8981
      @juniorsouza8981 Год назад +1

      durante o projeto eu tinha colocado servers ao invés de services ao adicionar o projeto, vê se o erro é esse, uma forma rápida é olhando o arquivo db.json (você já deve ter resolvido, mas fica a dica ai pra outra pessoa kkk)

  • @guilhermerodregues4910
    @guilhermerodregues4910 2 года назад +2

    Galera, tudo bem?
    Preciso de ajuda, estou preso nessa aula faz um tempo, já revisei os códigos do Project.js e do ServiceForm.js várias vezes e não achei erros. O console log esta indicando isso: " Uncaught TypeError: Cannot read properties of undefined (reading 'services') "

    • @Joao-sj2ub
      @Joao-sj2ub 2 года назад +1

      Eu acho que pode ser um erro de digitação, verifica no db.json (o banco de dados), como a propriedade services está escrita

    • @wesleymoraes1478
      @wesleymoraes1478 Год назад

      O meu foi erro de digitação!
      Abre o código fonte do professor, copia algumas coisas, vai no seu código fonte e dá um CTRL + F pra poder procurar e ver se está digitando certinho!
      :)

  • @renildoalves9201
    @renildoalves9201 2 года назад +3

    Quem poder me ajudar agradeço bastante, estou com um erro a 4 dias e não consigo passar dessa aula "Uncaught TypeError: Cannot read properties of undefined (reading 'push')" isso aparece no console.log ao clicar no botão de "adicionar serviços"

    • @guilhermerodregues4910
      @guilhermerodregues4910 2 года назад

      Boa noite o meu deu a mesma coisa só que (reading 'services') , isso faz com que a mensagem não apareça, vc conseguiu resolver?

    • @aldirley
      @aldirley Год назад

      olá, tive o mesmo erro. Tive que mudar pra 'service'. Pq não tem esse campo 'services' no banco de dados!

    • @felipesoares6245
      @felipesoares6245 Год назад

      @@aldirley Era isso mesmo!

  • @Gcastanheira
    @Gcastanheira Год назад +1

    Quando ele vai testar no minuto 14:16 , ocorre um erro no console do meu navegador Uncaught TypeError: Cannot set properties of undefined (setting 'id'), algu[em me socorre pf

    • @LeSpaceHistory
      @LeSpaceHistory Год назад

      Deve ser erro de sintaxe. Tem uns comentários falando disso abaixo.

    • @fernaandok3
      @fernaandok3 Год назад

      to preso nisso também

  • @rossinifonseca5683
    @rossinifonseca5683 2 года назад +2

    estou tendo um problema com o meu project.cost.
    ja reavaliei inumeras vezes e nao consegui indentificar o erro
    o meu project.cost esta dando valor null

    • @_Cesaum
      @_Cesaum 2 года назад

      Também estou com esse problema

    • @_Cesaum
      @_Cesaum 2 года назад +2

      Arrumei
      fui em ServiceForm.js e na função ServiceForm deixei assim:
      function ServiceForm({ handleSubmit, btnText, projectData, type, text, name })
      Antes não tinha o type, text e name. Então o db nao recebia esses parâmetros.
      Testa aí e vê se funciona. Se n me engano mudei somente isso

    • @mathQuonFelix
      @mathQuonFelix 2 года назад

      @@_Cesaum com certeza foi outra coisa

    • @leandroeffgen7868
      @leandroeffgen7868 Год назад

      Cara, não sei se já conseguiu, masss vai em todos os Inputs no arquivo ServiceForm e verifica o name deles, o input number, o name tem que ser cost, ex: name="cost". Acho que isso já resolve.

  • @leonardopezadelo
    @leonardopezadelo 2 года назад +5

    É só eu que as vezes fica boiando? ou tem gente aí que entende e vai de boa? kkkkkkkkkkkk

    • @wesleymoraes1478
      @wesleymoraes1478 Год назад

      É natural... Depois as coisas começam a fazer sentido! Eu acredito que o ideal é simplesmente não parar! :)

  • @megy4441
    @megy4441 11 месяцев назад

    Galera estava com um erro de push mas conseguir resolver da seguinte maneira, no
    function submit(e) {
    e.preventDefault()
    projectData.service.push(service)
    handleSubmit(projectData)
    } essa opção projectData.service esta errado coloque services no lugar de service dessa forma
    function submit(e) {
    e.preventDefault()
    projectData.services.push(service)
    handleSubmit(projectData)
    }

  • @alexandrejunior4775
    @alexandrejunior4775 2 года назад +1

    estou com problema nessa linha de código e fala que não pode dar o push em undefined
    projectData.services.push(service);

    • @aldopereira3637
      @aldopereira3637 2 года назад

      Amigo, não sei se já conseguiu resolver, mas no meu caso la no NewProject.jsx na função create post, se deve adicionar um array de service dentro do project, no caso vc deve adicionar essa linha antes de fazer o POST em Service: project.services = []

    • @brunaborges9766
      @brunaborges9766 2 года назад

      estou com a mesma duvida, conseguiu resolver??? heeelp

    • @emersonnogueira797
      @emersonnogueira797 2 года назад +1

      Dentro do arquivo Project.js altere o a palavra 'services' para 'service'.
      Na função createService():
      const lastService = project.services[project.services.length -1]
      para...
      const lastService = project.service[project.service.length -1]
      e por fim
      project.services.pop()
      para...
      project.service.pop()
      **COM ISSO IRÁ APARECER A MENSAGEM DE ERRO E JA ATUALIZARA O TOTAL UTILIZADO TAMBÉM.

  • @zerielribeiro5787
    @zerielribeiro5787 3 года назад +1

    👍👏✌

  • @vicctor3172
    @vicctor3172 2 года назад

    Estou com problema no cost, quando adiciono o lastServiceCost vai como NAN e só adiciona o id em serviçes, já olhei meu codigo com o dele e não achei o erro

    • @jefersonsantos8762
      @jefersonsantos8762 Год назад

      cara você conseguiu achar o erro ?
      estou a uma semana com o mesmo erro não consegui achar.

    • @antoniojuniormota2619
      @antoniojuniormota2619 Год назад

      Verifica se todos os nomes tão escrito como cost, ou variação ex: Cost, costs, cossts etc...
      @@jefersonsantos8762

  • @guilhermeviana6342
    @guilhermeviana6342 2 года назад +1

    Aqui ao clicar pra add serviço da erro no id , Cannot set properties of undefined (setting 'id') alguém resolveu?

    •  2 года назад

      Acabou de dar isso no meu aqui

    • @fernaandok3
      @fernaandok3 Год назад

      alguem conseguiu resolver?

  • @MarceloHenrique-ts2ot
    @MarceloHenrique-ts2ot 2 года назад +1

    Como no nosso input definimos o value como: value={value ? value : ' '}
    Quando eu uso o componente input com o value em branco não me permite digitar no campo!
    Alguém para ajudar?

    • @MarceloHenrique-ts2ot
      @MarceloHenrique-ts2ot 2 года назад

      Já consegui resolver. O problema estava justamente nessa verificação, que não precisa ser feita no input pois ele já entende se esse value foi ou não passado para função Input!

  • @thalesoliveira4635
    @thalesoliveira4635 6 месяцев назад

    Fala galera, mesmo dando o set do message pra '' ele ainda não re-aparece após a primeira alteracao, alguem conseguiu resolver pra ele aparecer varias vezes?

    • @thalesoliveira4635
      @thalesoliveira4635 6 месяцев назад

      Consegui galera, o comentário de um mano aq ajudou, tem q dar SetTimeout pra zerar a variavel, se nao aparece so uma vez, segue o cod: if(newCost > parseFloat(project.budget)) {
      setMessage('Orçamento ultrapassado. Por favor, verifique o valor do serviço')
      setType('error')
      project.services.pop()
      setTimeout(() => {setMessage('');}, 3000)
      return false
      }

  • @DPM-TI--MatheusAnalistadesiste
    @DPM-TI--MatheusAnalistadesiste 3 года назад +1

    showwwwwwwwwwwwwww

  • @caiolagreca2696
    @caiolagreca2696 2 года назад +5

    Cheguei até aqui porém não consigo identificar onde estou errando. Quando insiro um valor de serviço acima do permitido, ou quando clico no botão para adicionar um novo serviço, não atualiza nada. Além disso, o console.log está aparecendo o prototype do Object e somente o ID gerado (não aparece a descrição e valores dos serviços a serem adicionados..) Alguem poderia me ajudar?

    • @daybisonbraga
      @daybisonbraga 2 года назад

      Dá uma olhada se você colocou o handleOnChange = {handleChange} no serviceForm em todas as opções do formulario

    • @daybisonbraga
      @daybisonbraga 2 года назад

      Verifica tambem se vc colocou o array vazio no userState service

    • @joatancarlos2704
      @joatancarlos2704 2 года назад

      Cara, também tava passando por esse problema, mas depois de uma boa olhada eu vi que tava colocando 'service' no lugar de 'services'. Dá uma checada no seu código linha a linha em busca de palavras que estão incompletas ou erradas. ;)

    • @marcioevandro3718
      @marcioevandro3718 2 года назад +2

      @@joatancarlos2704 kkkkkkk e eu que escrevi "lenght" e por isso não estava passando o services

    • @JtEduVinicius
      @JtEduVinicius 2 года назад

      conseguiu resolver? estou com o mesmo problema

  • @tweeeeest
    @tweeeeest 2 года назад +1

    Olá, pessoal. Por favor, alguém poderia explicar por que na função handleChange o e.target.name vem entre colchetes e o e.target.value não? Tem alguma coisa a ver com a gente já estar utilizando chaves? Segue a função:
    function handleChange(e){
    setService({...service, [e.target.name]: e.target.value});
    }
    Obrigado!

    • @robertovinicius5837
      @robertovinicius5837 2 года назад

      ele ta passando um nome e um valor para um objeto ai name é a chave que no objeto é assim { name: value }

    • @tweeeeest
      @tweeeeest 2 года назад +1

      @@robertovinicius5837 Valeu, essa parte eu entendi. Minha dúvida é em relação ao uso do colchetes para passar a chave. É passado assim [e.target.name] e não entendi por que tem que ser entre colchetes.

    • @luckingbr2047
      @luckingbr2047 2 года назад +1

      @@robertovinicius5837 ele não perguntou isso

    • @pablomoraes4498
      @pablomoraes4498 11 месяцев назад +1

      O nome disso é computed property names.
      Normalmente ele não poderia usar aquele e.target.name (Que pega o nome do input disparador do evento) como propriedade do objeto por ser uma expressão, no máximo como valor, mas como ele colocou entre colchetes isso se torna possível.
      Não sei explicar direito, mas você consegue achar conteúdo sobre isso por esse nome aí que eu dei, tanto no youtube quanto no mdn.

    • @tweeeeest
      @tweeeeest 11 месяцев назад

      @@pablomoraes4498 valeu! Eu não sabia que isso tinha um nome. Consegui achar mais sobre na MDN, como você sugeriu!

  • @emersonnogueira797
    @emersonnogueira797 2 года назад +1

    estou com problema nessa linha de código e fala que não pode dar o push em undefined
    projectData.services.push(service);
    Alguem sabe o motivo?

    • @emersonnogueira797
      @emersonnogueira797 2 года назад +1

      Dentro do arquivo Project.js altere o a palavra 'services' para 'service'.
      Na função createService():
      const lastService = project.services[project.services.length -1]
      para...
      const lastService = project.service[project.service.length -1]
      e por fim
      project.services.pop()
      para...
      project.service.pop()
      **COM ISSO IRÁ APARECER A MENSAGEM DE ERRO E JA ATUALIZARA O TOTAL UTILIZADO TAMBÉM.

    • @luckingbr2047
      @luckingbr2047 2 года назад +1

      @@emersonnogueira797 valeu bb 😍

  • @renatotravassos3359
    @renatotravassos3359 Год назад

    Esse é seu problema,vc jogou uma boma perto de pessoas que não entendem tanto de programação,o pior é que vc não sabe 100% das coisas,dúvida?olhe os comentários.

    • @MatheusBattisti
      @MatheusBattisti  Год назад +2

      fala brother! não desconte a sua frustração em não aprender nos outros =)
      o que uma pessoa que "Não entende tanto de programação", está fazendo num curso de uma biblioteca que envolvem dezenas de conceitos? eu hein xD

    • @renatotravassos3359
      @renatotravassos3359 Год назад

      @@MatheusBattisti Vc é igual o Cod3r.

    • @diego01manaus
      @diego01manaus Год назад

      frustrado....kkkk

    • @renatotravassos3359
      @renatotravassos3359 Год назад

      @@diego01manausSim

  • @brunaborges9766
    @brunaborges9766 2 года назад

    projectData.services.push(service)
    está dando erro nessa linha de código!!! heeelp

    • @robertovinicius5837
      @robertovinicius5837 2 года назад

      da console.log no e, pra olhar qual o problema

    • @emersonnogueira797
      @emersonnogueira797 2 года назад +1

      Dentro do arquivo Project.js altere o a palavra 'services' para 'service'.
      Na função createService():
      const lastService = project.services[project.services.length -1]
      para...
      const lastService = project.service[project.service.length -1]
      e por fim
      project.services.pop()
      para...
      project.service.pop()
      **COM ISSO IRÁ APARECER A MENSAGEM DE ERRO E JA ATUALIZARA O TOTAL UTILIZADO TAMBÉM.

    • @brunaborges9766
      @brunaborges9766 2 года назад +1

      @@emersonnogueira797 muuito obrigadaaa! deu certo

  • @primata83
    @primata83 2 месяца назад

    Visto