Pra quem travou no erro relacionado a importação do useHistory, a nova versão do 'react-router-dom' substituiu o useHistory por useNavigate. Basta substituir o nome da constante history e o nome do hook na importação e na atribuição da constante por useNavigate. E a linha do 'history.push...' substituir por: 'navigate("/projects", { message: "Projeto criado com sucesso!" });' Desta forma funcionou aqui perfeitamente.
Estou fazendo o curso e estou gostando muito. Já sou apaixonado por front-end e o react sempre me surpreende. Para quem está tendo dificuldade com a lógica aplicada nesse vídeo, tudo gira em torno de deixar as coisas que precisam ser genéricas, genéricas, e as coisas que precisam ser específicas, específicas. Ele já falou isso não lembro em que aula, mas a idéia é: quando um componente possui métodos que podem variar, é porque ele é ou possui algum grau de genericidade. Por isso, os métodos devem ser declarados no componente pai que o invoca (componente específico). Isso vira um efeito em cascata. É isso que o Matheus fez: - Os componentes e são verdadeiramente genéricos (podem ser usados em qualquer formulário) e possuem métodos variáveis (o método não é definido no componente, mas sim vindo como argumento) - O componente não é totalmente genérico (não pode ser usado em qualquer página do sistema, só nas relacionadas a projeto) mas possui um grau de genericidade (ele possui o método de envio variável, que dependendo de qual vier, ele vira um formulário para cadastro (o caso do vídeo) ou um formulário para atualização) e inclui os componentes e passando para eles a função setProject() para eles incluírem seus valores no objeto project (e dependendo do modo do formulário, eles podem ou não ter valores padrão) - O componente é um componente específico (é um componente com só uma função (ele é a página para criação dos projetos, logo, todo o seu conteúdo girará em torno dessa função)) que chama o com a função createProject() (chamando o formulário como formulário de criação de projeto) Em resumo: - O componente/página invoca o componente com a função createProject, para o mesmo ser um formulário de criação de projetos, e o inclui os componentes e para eles incluírem seus valores no objeto project (declarado no ) espero ter ajudado 😀
Gostei da explicação, obrigado. Mas uma perguntinha, o id que é criado logo após o services, é gerado automaticamente? Foi uma das partes que eu fiquei mais preso e vi e revir o código e nada desse id... kkk
@@onacelio3994 irmão, acabei de ver o video e estou com a mesma dúvida, vc conseguiu entender? ao criar 2 projetos testes o id foi diferente e aparentemente aleatório, ao contrario do video que segue a sequência numérica padrão, mas realmente nao foi definido por nós... suponho q seja aleatorio mesmo
Pessoal que estiver com problema no history, eu usei dessa forma e funcionou: import { useNavigate } from "react-router-dom"; const navigate = useNavigate(); .then((e) => navigate("/projects"))
Eu vim o curso inteiro voando, fluindo, indo tudo lindo... mas nessa aula, vou te falar, apanhei mais que o boneco Judas no sábado de Aleluia ... putis grilis essa foi doida!
Estou usando o projeto como base para eu ir aprimorando e testando mais coisas no react. Eu adicionei um textarea para preencher a descrição do projeto e um campo de data para o início do projeto. Agora estou vendo como colocar um checkbox e tbm vou criar a possibilidade de alterar o status do projeto. Mudei um pouco os estílos, aprendendo muito com o Matheus
pode ser feito assim: const navigate = useNavigate() function testeNav() { navigate(('/projects', { message: 'Projeto criado com suceso'})) } e chamar a função dentro da chamada fetch
Valeu! Até aqui tudo funcionando perfeitamente agora partir para uma revisão até entender tudo com maior clareza, muito obrigado e um ótimo final de semana.
Parabéns pelo curso e obrigada. Fica a dica de ter uma aba com o projeto pronto e ir mostrando o que estamos criando, por exemplo, mostrar o que o input do formulário deve fazer e voltar para o código explicando como se faz para construir e lá chegar. Lembrando que é um curso de react e que nesta aula usou vários conceitos importantes e fundamentais, ela poderia ter sido dividida e explicada mais detalhadamente retomando os conceitos que mostrou só em teoria nas aulas anteriores.
Pessoal que estiver vendo o curso agora, o nome do vídeo no canal do Matheus é: Ajustando o projeto para o React Router 6. A dica de ouro: cuide com erros de digitação religiosamente. O resto é tranquilo de arrumar.
Para aqueles que acharam esse video dificil de entender e acompanhar como eu, não se preocupem Não é falta de capacidade de vocês, o professor infelizmente passou por muita coisa nesse video sem explicar direito
@@developing01 Salve mano! esse comentario meu faz 8 meses, nessa epoca eu tava aprendendo react ainda. Esse curso é mt bom, foi minha base pra aprender, mas se eu pudesse falar algo pra mim de 8 meses atras é: foque mais em botar a mão na massa e menos em teoria. A teoria é importante mas vc aprende muito mais criando projetos próprios, cada vez tentando fazer um projeto mais dificil que o anterior.
@@developing01 eu aprendi MUITO botando a mão na massa, coisa que se eu tentasse aprender 8 meses atras eu ia provavelmente desistir por achar dificil de mais ( igual a esse vidoe em certos momentos ). Mas quanto mais vc programa mais vai ficando facil.
@@Nagatacs Salve! Obrigado por esses toques! Estou começando nessa luta, travei num curso pago no "React", e esse do Matheus, voltou a me animar. Já que passou pelo que estou passando...depois que eu finalizar aqui, vou seguir seu conselho. Você indicaria mais algum ou outro curso/professor aqui no Ytube? Obg ;)
Aos que estão com dificuldade no curso a partir dessa aula (como já que anteriormente houve outras pessoas com dificuldade também nos comentários): Eu tive que fazer o curso completo, para mais tarde rever todo o código que fiz e comentar em cada linha revendo o curso novamente, para que pudesse entender melhor oque estava acontecendo nos arquivos e principalmente na utilização dos handle. Não recomendo com que as pessoas que abaram de aprender Vanilla JS e Node JS opte por este curso, porque o professor COMENTA oque está fazendo e não EXPLICA A LINHA DE RACIOCÍNIO que lhe fez decidir fazer aquela lógica ou inserção de components e props naquele arquivo. Não sei o quanto ele mudou, pois isso é um curso de quase 3 anos atrás, mas pelo oque é passado aqui, não me pareceu bem explicado ou feito com o interesse de ensinar quem possivelmente teria dificuldade de entender. Outra coisa que também me incomodou um pouco foi pela falta de atualização do código no GitHub e variáveis, props e arquivos/components serem majoritariamente em inglês. Acho que isso acaba atrapalhando na leitura e memória dos alunos dos arquivos. Enfim, se pudesse voltar no tempo, teria escolhido outro curso ao invés deste.
quem estiver tendo problema com o history, o correto agora é : import { useNavigate } from 'react-router-dom'; //---- const navigate = useNavigate(); //----- navigate('/projects', { state: { message: 'Projeto criado com sucesso' }, });
Tudo se faz possível graças ao "fetch" e o arquivo "db.json" que simula um banco de dados (uma API para ser mais exato). Resumindo, o "fetch" pode buscar ou mandar dados para o arquivo "db.json", tudo depende do method que será passado (GET busca estes dados, enquanto o POST os envia). Em ambos os casos, além do method, é implantado o atributo headers que seria uma propriedade adicional para estes dados (no caso do projeto é indicar que os dados estão em JSON), e no caso do POST, tem também a propriedade body, que vai indicar com que corpo nós vamos enviar estes dados para a API (aqui no caso é indicado que o envio será pelo método JSON.stringify(), ou seja, transformar nossos dados em JSON antes de mandar pra API). Para o method: GET não é necessário este corpo pois nós só estamos buscando estes dados. Outro ponto interessante é sobre o useEffect. Na hora de buscar os dados, para que os mesmos aconteçam somente uma vez, é usado o useEffect (que por padrão tem que receber uma função e um array de dependências, este que no caso do vídeo está vazio). Ele somente será executado quando qualquer elemento deste array for modificado. E uma coisa interessante, sua execução é disparada a nível do componente, ou seja, diferente de uma função que é chamada pelo nome, este é chamado a cada mudança em qualquer elemento no array de dependências. Ou seja, sua execução está atrelada a nível de componente, e não por escopo de chaves. Se no useEffect não for passado este array como segundo parâmetro, ele vai disparar toda vez que um evento acontecer em qualquer lugar dentro do componente. Se no mesmo o array estiver vazio (como no vídeo), ele executa apenas uma vez, exatamente na hora de carregar a página. E se caso tiver elementos no array (uma variável por exemplo), a cada mudança no elemento ele vai disparar. Não fazendo propaganda, mas já divulgando, ele explica mais detalhado todos estes detalhes no curso completo dele na Udemy.
A parte ruim de tantos componentes é que se vc esquecer de alguma coisa e for assistir a aula depois pra ver só uma explicação específica, vc boia porque ja não lembra mais qual componente faz o que, ou o que ele retorna
Pra quem estiver com alguns erros nesta aula dar um npm run backend novamente e depois em outra aba do terminal npm start. Comigo funcionou assim! ahhh e o history.push só coloque history que vai da certo.
Nossa cara, eu estou adorando o curso, muito boa a didática e estou entendo muito bem o conteúdo, mas eu estou (por escolha própria) fazendo o projeto inteiramente em typescript com o strict mode ligado, e embora nas outras aulas não foi um problema traduzir o que o professor fazia para o meu código esta aula, por algum motivo NÃO PAROU DE DAR ERRO, foi uma dificuldade que só, e pra consertar eu tive que quebrar a cabeça e até aprendi conceitos novos em react só para fazer as coisas simples e rápidas que ele está fazendo em javascript. Isso só mostra como typescript tem seus prós e contras, mas ainda usarei ele, já que é bem difícil algo ir para produção com erro, e o fato de dar tantos erros com um código simples em javascript tbm mostra o quão perigoso pode ser usar javascript. Mas com certeza considerarei usar mais js das proximas vezes
gente vcs que estao com problemas de estar so cadastrando o id deve ser algum erro de ortografia nessa linha do fetch ("content-type" : "application/json") olhem direito pra ver se n tem erro na digitação
Para quem está com problema no PUSH e não está direcionando para a página projects, basta remover o push e usar history('/projects', { message: 'Projecto criado com sucesso!'})
Grande Minerador ... beleza ?! Isso significa: " é o STATE do project até o momento" e iremos alterar alguns dados para ... " Ex: const [state, setState] = useState({}); setState(prevState => { // Object.assign também funcionaria return {...prevState, ...updatedValues}; }); espero ter ajudado !!!
Line 42:40: 'selectedIndex' is not defined no-undef onde q ele ta definido pq nao encontrei no video em momento algum, só colocou ele ali e onde definiu????????????
O GPT me ajudou!!!!! se alguem tiver mesmo erro, é name: e.target.options[e.target.selectedIndex].text, eu tinha colocado separado o target selectedIndex
Olá Matheus, me dá uma dica aqui: na aula 24 no redirecionamento da rota, não se usa mais o useHistory, devido a atualização do router-dom, qual utilizo ? como fica a sintaxe : dentro do Post history.push('/projects', { message: 'Projeto criado com suceso'})
mano, pelo que entendi esse ID veio automaticamente. Ele é colocado sempre que voce não colocar, é uma regra do json-server, acho que ele esqueceu de comentar isso.
Para os que não entenderam esta parte "setProject({...project, [e.target.name]: e.target.value})" dentro do objeto passado para setProject, é simplesmente adicionado mais um valor ao objeto, o mesmo de fazer isso aqui, project["name"] = "test", porem o que se recebe como key e valor é dinâmico baseado no nome e no valor do campo que está sendo alterado, espero te ajudado
Professor, se eu usar tentar enviar esses dados para um banco real, como sqlite, ele ate carrega os dados no banco, mas esses dados nao sao do formulario enviado, meu backend foi feito em flask utilizando a doc Swagger e esta funcionando bem. Estou achando que e no React na hora de definir o body: JSON.stringify(project), de alguma forma esses dados nao estao sendo enviados, o banco ate recebe a solicitacao, mas ele adiciona um modelo q ja esta la como padrao e nao os dados do formulario. poderia me explicar o que preciso fazer pra enviar corretamente esses dados do formulario para o banco de dados. Talvez essa seja a duvida de muito gente... obg
Meu erro foi comentar a linha que executa justamente a ação handleSubmit no ProjectForms. Eu jurei que o professor havia comentado essa linha e depois não mais retirei. No final do projeto, não estava acontecendo nada quando eu clicava em salvar o novo projeto. Fiquei uns 15mins comparando os códigos! E de fato essa aula eu fiquei bastante perdido também! Até as aulas anteriores ficou tudo muito claro, mas nesta aula já embaralhou tudo! Por exemplo... o "project" no arquivo NewProject e ProjectForm de onde veio mesmo essa variável? Onde eu criei ela e para que estou a usando?
Não entendi a finalidade de monitorar os valores do input em um evento 'change' já que até então esses valores não são repassados pra nenhum outro lugar do DOM e só irão ser capturados na hora do evento 'submit' para a DB. Enfim, curso muito bom estou aprendendo bastante, só tenho a agradecer.
Oi, alguém teve problemas na parte do submit? Eu não consigo redirecionar para projects e o console reclama dizendo que handleSubmit is not a function. Alguém passou por isso? O trecho do código com problemas é " const submit = (e) => { e.preventDefault() handleSubmit(project) }"
O problema já foi dito para vc no console. Não é uma função, vc declarou uma variável "const submit" e não uma função. É so alterar o "const" por "function"
Uma dica para a galera que está com dificuldade na aula, vai pausando e pequisando por cada coisa que você não sabe, assista a aula umas 3 vezes até fixar, não copie o codigo e vai para a proxima lá na frente você vai se frustar
Estou tendo problema com value dos "Input", ao colocar o if ternário nestes value, os campos input na aplicação param de funcionar (acredito que podem estar sempre recebendo o vazio por sempre obter resposta false no if ternário). Quando faço sem estes if ternários nos input, a aplicação funciona normalmente. Porém, algumas aulas a frente, quando exibimos os projetos já criados, nenhum informação dos projetos é buscada com sucesso.
Parece dificil, mas isso porque vocês estão olhando o código como se fosse apenas uma linha, mas na verdade são varias etapas que vão tomando forma com o passar do tempo. E outra, esses códigos são a forma como o professor utiliza o React, eu por exemplo, irei construir um projeto semelhante a esse, mudando muita coisa, porque vai ser minha forma de programar.
o meu deu dois erros, a página mostou no navigate e no handleChange, como poderia resolver elas ? não está sendo cadastrado nada no db, apenas o id. Alguém pode me ajuda ?
Também estou com o mesmo problemas, no meu caso o erro foi uncaught type error project.category is undefined, já pesquisei e refiz o código e não consigo encontrar a solução
O meu não mostra erro, mas não direciona para a página de projetos, não esta salvando no "db.json' e muito menos mostrando no URL : " localhost:5000/projects" . Faz mais de dois dias que estou travado nesta aula e não consigo sair para dar sequencia. Acredito que seja essas atualizações do React. Agora não sei o que faço.
Boa noite @@alamo_DevFlow , tudo bem!? Então eu já fiz isso, na realidade fiz desde o iniciou, acredito que devo ter feito alguma outra coisa errada para não esta dando certo. Mas obrigado pelo retorno. Vou ter que fazer uma varredura em todo código para tentar descobrir o erro.
Boa noite! Pessoal estou com um problema aqui, quando eu envio o projeto pro db.json ele chega la com um id aleatorio (fora o id da categoria), acho que é algum valor perdido na memoria, não estou conseguindo identificar de onde está vindo, eu consigo definir um valor para ele no setProject do arquivo ProjectForm.js, mas não consigo identificar de onde vem essa propriedaade id que não era para existir, mais alguem teve esse problema? Ele chega la no arquivo db.json assim: { "id": "03a0", //Esse é o id que não sei de onde está vindo "name": "teste", "budget": "5000", "category": { "id": "3", "name": "Design" }, "cost": 0 }
No meu ta tendo uma coisa estranha... nao atrapalha no andamento do curso so que tipo.... o .json nao recebe a categoria que eu escolho. no categories:[...] ta tudo lá, mas cada um dos projetos nao consegue puxar a categoria que é a deles De mais alguem ta assim tb?
opa pessoal boa noite alguém pode me ajudar com um problema no category , não estou conseguindo puxar as opções , aparece e o nome json , vocês pegarão esse erro ?
Tbm estava com esse problema, depois ví que havia escrito no header Contety-Type quando o correto é Content-Type, verifique se não cometeu um erro de digitação tbm : )
Mesmo com as respostas lidas aqui continuo com o 'handleSubmit is not a function' . Minha function ProjectForm( handleSubmit, projectData){ tá deste jeito, e minha assim
O meu está dando o erro " Attempted import error: 'useHistory' is not exported from 'react-router-dom' (imported as 'useHistory'). ERROR in ./src/components/pages/NewProject.js 11:18-28 export 'useHistory' (imported as 'useHistory') was not found in 'react-router-dom' (possible exports:"
Pra quem está com problemas com o useHistory, ele foi substituido no react-router-dom v6, agora deve ser usado o useNavigate(). Ex: import { useNavigate } from 'react-router-dom'; const navigate = useNavigate();
Fala turma, beleza?! No meu projeto não gerou o id: 1, igual o do exemplo do professor. No meu gerou um id aleatório(f21d). Alguém mais está passando por essa situação ?
@@joaovictor-pu9lz descobri depois. O objeto em Java script tem o seguinte esquema: { Key: vale }. Como a gente quer dizer que o valor armazenado event.targe.name é o nome da chave, a gente precisa colocar entre parênteses para forçar isso, como a gente coloca as chaves no corpo do código quando queremos usar alguma expressão. Se a gente não colossasse, estaríamos dizendo que o nome da chave é event.target. name e não o valor.
Entendi, eu tinha ficado meio confuso, porque a desestruturação com aqueles dois pontos muda a forma de chamada do atributo desestruturado.. mas entendi sim.. valeu mano.
Pra alguém o código function createPost(project){ project.cost = 0 project.services = [] , volta assim pro db.json "cost": 0, "services": [], "id": 1 e com isso não retorna nada? impedindo os valores do name do input
Bom dia, depois que adicionei o value={project.name ? project.name : ''} e value={project.category ? project.category.id : ''} Não consigo mais inserir dados nos input nem selecionar as categorias. Alguem passou por isso?
Fiquei um pouco confuso pois vi algumas coisas que pensei serem atribuições do backend (fora a que o Matheus comentou no video). Mas como não entendo muito sobre desenvolvimento, posso estar enganado. Alguma luz galera?
Eu estava entendendo tudo até então, mas essa aula pegou, acho que preciso de alguns conhecimentos prévios. Alguém recomenda algum pré-requisito ou aulas que possam me ajudar nessa aula? Desde já, muito obrigado.
alguem me ajuda meu fica danto esse erro Failed to reload /src/componets/project/Form.jsx. This could be due to syntax errors or importing non-existent modules. (see errors above) sabem porque
e ta esse erro tambem react-dom_client.js?v=11dd3758:sourcemap:521 Warning: You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`. at select at div at Select (localhost:5173/src/componets/Form/Select.jsx?t=1659629763291:19:3) at form at Form (localhost:5173/src/componets/project/Form.jsx?t=1659630208823:24:3) at div at NovoProjeto (localhost:5173/src/componets/pages/NovoProjeto.jsx?t=1659630208823:22:19) at Routes (localhost:5173/node_modules/.vite/deps/react-router-dom.js?v=11dd3758:1157:5) at div at Container (localhost:5173/src/componets/layoute/Container.jsx:20:45) at Router (localhost:5173/node_modules/.vite/deps/react-router-dom.js?v=11dd3758:1104:15) at BrowserRouter (localhost:5173/node_modules/.vite/deps/react-router-dom.js?v=11dd3758:1233:5) at App printWarning @ react-dom_client.js?v=11dd3758:sourcemap:521
@@blima1504 Eu já fiz um outro projeto mais atual do canal e deu certo. Agora estou refazendo tudo do zero, pra funcionar nesse também. O projeto atual é o costs, deste mesmo canal. Tudo redondo e funcionando.
@@rogeriovaz4420 eu consegui encontrar, a diferença é que ele não trabalha com esse banco de dados local igual o do Costs, que justamente onde estou tendo problemas, caso tenha conseguido inserir a categoryno db.json poderia compartilhar o Github pra eu dar uma olhada?
Pra quem travou no erro relacionado a importação do useHistory, a nova versão do 'react-router-dom' substituiu o useHistory por useNavigate. Basta substituir o nome da constante history e o nome do hook na importação e na atribuição da constante por useNavigate. E a linha do 'history.push...' substituir por: 'navigate("/projects", { message: "Projeto criado com sucesso!" });'
Desta forma funcionou aqui perfeitamente.
Nem todo herói usa capa!+...........
vlw deu certo ak 😉👏
nossa nem tinha visto seu comentario antes , tive q pesquisar pra encontrar a solução mas deu certo tbm kkk
ou seja, const navigate = useNavigate() e navigate("/projects", { message: "Projeto criado com sucesso!" })
SALVANDO VIDAS!!!
Estou fazendo o curso e estou gostando muito. Já sou apaixonado por front-end e o react sempre me surpreende.
Para quem está tendo dificuldade com a lógica aplicada nesse vídeo, tudo gira em torno de deixar as coisas que precisam ser genéricas, genéricas, e as coisas que precisam ser específicas, específicas.
Ele já falou isso não lembro em que aula, mas a idéia é:
quando um componente possui métodos que podem variar, é porque ele é ou possui algum grau de genericidade. Por isso, os métodos devem ser declarados no componente pai que o invoca (componente específico). Isso vira um efeito em cascata.
É isso que o Matheus fez:
- Os componentes e são verdadeiramente genéricos (podem ser usados em qualquer formulário) e possuem métodos variáveis (o método não é definido no componente, mas sim vindo como argumento)
- O componente não é totalmente genérico (não pode ser usado em qualquer página do sistema, só nas relacionadas a projeto) mas possui um grau de genericidade (ele possui o método de envio variável, que dependendo de qual vier, ele vira um formulário para cadastro (o caso do vídeo) ou um formulário para atualização) e inclui os componentes e passando para eles a função setProject() para eles incluírem seus valores no objeto project (e dependendo do modo do formulário, eles podem ou não ter valores padrão)
- O componente é um componente específico (é um componente com só uma função (ele é a página para criação dos projetos, logo, todo o seu conteúdo girará em torno dessa função)) que chama o com a função createProject() (chamando o formulário como formulário de criação de projeto)
Em resumo:
- O componente/página invoca o componente com a função createProject, para o mesmo ser um formulário de criação de projetos, e o inclui os componentes e para eles incluírem seus valores no objeto project (declarado no )
espero ter ajudado 😀
Gostei da explicação, obrigado.
Mas uma perguntinha, o id que é criado logo após o services, é gerado automaticamente? Foi uma das partes que eu fiquei mais preso e vi e revir o código e nada desse id... kkk
@@onacelio3994 irmão, acabei de ver o video e estou com a mesma dúvida, vc conseguiu entender? ao criar 2 projetos testes o id foi diferente e aparentemente aleatório, ao contrario do video que segue a sequência numérica padrão, mas realmente nao foi definido por nós... suponho q seja aleatorio mesmo
Pessoal que estiver com problema no history, eu usei dessa forma e funcionou:
import { useNavigate } from "react-router-dom";
const navigate = useNavigate();
.then((e) => navigate("/projects"))
useNavigate é o mais atual v6
Eu vim o curso inteiro voando, fluindo, indo tudo lindo... mas nessa aula, vou te falar, apanhei mais que o boneco Judas no sábado de Aleluia ... putis grilis essa foi doida!
Estou usando o projeto como base para eu ir aprimorando e testando mais coisas no react. Eu adicionei um textarea para preencher a descrição do projeto e um campo de data para o início do projeto. Agora estou vendo como colocar um checkbox e tbm vou criar a possibilidade de alterar o status do projeto. Mudei um pouco os estílos, aprendendo muito com o Matheus
boa José, com certeza fazendo customizações vc vai aprender bem mais, bons estudos!
Sem duvidas o curso e projeto React para iniciantes mais completo do TH-cam!
A dificuldade escalonou muito rápido...
Doidera kkkkkk
pode ser feito assim:
const navigate = useNavigate()
function testeNav() {
navigate(('/projects', { message: 'Projeto criado com suceso'}))
}
e chamar a função dentro da chamada fetch
Valeu! Até aqui tudo funcionando perfeitamente agora partir para uma revisão até entender tudo com maior clareza, muito obrigado e um ótimo final de semana.
show Claudio, e semana que vem continuamos, na segunda! =)
Parabéns pelo curso e obrigada. Fica a dica de ter uma aba com o projeto pronto e ir mostrando o que estamos criando, por exemplo, mostrar o que o input do formulário deve fazer e voltar para o código explicando como se faz para construir e lá chegar. Lembrando que é um curso de react e que nesta aula usou vários conceitos importantes e fundamentais, ela poderia ter sido dividida e explicada mais detalhadamente retomando os conceitos que mostrou só em teoria nas aulas anteriores.
Pessoal que estiver vendo o curso agora, o nome do vídeo no canal do Matheus é: Ajustando o projeto para o React Router 6.
A dica de ouro: cuide com erros de digitação religiosamente.
O resto é tranquilo de arrumar.
obrigado
Achei muito legal a forma como você fez o handleChange.
professor top e a comunidade top
Para aqueles que acharam esse video dificil de entender e acompanhar como eu, não se preocupem
Não é falta de capacidade de vocês, o professor infelizmente passou por muita coisa nesse video sem explicar direito
Muito informação mesmo! Vou assistir mais 75 vezes para absorver kkkk
@@developing01 Salve mano! esse comentario meu faz 8 meses, nessa epoca eu tava aprendendo react ainda. Esse curso é mt bom, foi minha base pra aprender, mas se eu pudesse falar algo pra mim de 8 meses atras é: foque mais em botar a mão na massa e menos em teoria. A teoria é importante mas vc aprende muito mais criando projetos próprios, cada vez tentando fazer um projeto mais dificil que o anterior.
@@developing01 eu aprendi MUITO botando a mão na massa, coisa que se eu tentasse aprender 8 meses atras eu ia provavelmente desistir por achar dificil de mais ( igual a esse vidoe em certos momentos ). Mas quanto mais vc programa mais vai ficando facil.
@@Nagatacs Salve! Obrigado por esses toques! Estou começando nessa luta, travei num curso pago no "React", e esse do Matheus, voltou a me animar.
Já que passou pelo que estou passando...depois que eu finalizar aqui, vou seguir seu conselho.
Você indicaria mais algum ou outro curso/professor aqui no Ytube? Obg ;)
@@developing01 Só fiz esse aqui mesmo. Depois tentei recriar esse projeto todo do 0 tentando ao máximo não pescar. Aprendi muito com isso.
Aos que estão com dificuldade no curso a partir dessa aula (como já que anteriormente houve outras pessoas com dificuldade também nos comentários): Eu tive que fazer o curso completo, para mais tarde rever todo o código que fiz e comentar em cada linha revendo o curso novamente, para que pudesse entender melhor oque estava acontecendo nos arquivos e principalmente na utilização dos handle. Não recomendo com que as pessoas que abaram de aprender Vanilla JS e Node JS opte por este curso, porque o professor COMENTA oque está fazendo e não EXPLICA A LINHA DE RACIOCÍNIO que lhe fez decidir fazer aquela lógica ou inserção de components e props naquele arquivo. Não sei o quanto ele mudou, pois isso é um curso de quase 3 anos atrás, mas pelo oque é passado aqui, não me pareceu bem explicado ou feito com o interesse de ensinar quem possivelmente teria dificuldade de entender. Outra coisa que também me incomodou um pouco foi pela falta de atualização do código no GitHub e variáveis, props e arquivos/components serem majoritariamente em inglês. Acho que isso acaba atrapalhando na leitura e memória dos alunos dos arquivos. Enfim, se pudesse voltar no tempo, teria escolhido outro curso ao invés deste.
Consegui entender melhor agora, depois de ver mais duas vezes, mas deu certo. Obrigado Matheus.
Que maneiro! me surpreendi com os dados aparecendo no db.json kk
hahha simula certinho um banco de dados =)
quem estiver tendo problema com o history, o correto agora é :
import { useNavigate } from 'react-router-dom';
//----
const navigate = useNavigate();
//-----
navigate('/projects', { state: { message: 'Projeto criado com sucesso' }, });
valeu. a ultima linha era que estava faltando aqui. Obrigado
Tava com esse problema :D valeu
meu heroi nao usa capa, ele escreve códigos
galera vale lembrar, que se ta tendo erro, é aí que vc fica bom para o mercado de trabalho, você deve resolver o problemas que vão aparecer no codigo.
Nunca tinha parado para pensar nisso! boaaaaa hehe! venham bugs!
A dificuldade aumentou muito nessa aula. Acho q nessas aulas mais complexas poderia ter uma explicação mais detalhada….
Também acho, pra nós que estamos começando fica mt complicado
Concordo, ate a última aula eu estava entendendo tudo, nessa já fiquei confusa em diversas partes
Tudo se faz possível graças ao "fetch" e o arquivo "db.json" que simula um banco de dados (uma API para ser mais exato). Resumindo, o "fetch" pode buscar ou mandar dados para o arquivo "db.json", tudo depende do method que será passado (GET busca estes dados, enquanto o POST os envia). Em ambos os casos, além do method, é implantado o atributo headers que seria uma propriedade adicional para estes dados (no caso do projeto é indicar que os dados estão em JSON), e no caso do POST, tem também a propriedade body, que vai indicar com que corpo nós vamos enviar estes dados para a API (aqui no caso é indicado que o envio será pelo método JSON.stringify(), ou seja, transformar nossos dados em JSON antes de mandar pra API). Para o method: GET não é necessário este corpo pois nós só estamos buscando estes dados.
Outro ponto interessante é sobre o useEffect. Na hora de buscar os dados, para que os mesmos aconteçam somente uma vez, é usado o useEffect (que por padrão tem que receber uma função e um array de dependências, este que no caso do vídeo está vazio). Ele somente será executado quando qualquer elemento deste array for modificado. E uma coisa interessante, sua execução é disparada a nível do componente, ou seja, diferente de uma função que é chamada pelo nome, este é chamado a cada mudança em qualquer elemento no array de dependências. Ou seja, sua execução está atrelada a nível de componente, e não por escopo de chaves.
Se no useEffect não for passado este array como segundo parâmetro, ele vai disparar toda vez que um evento acontecer em qualquer lugar dentro do componente.
Se no mesmo o array estiver vazio (como no vídeo), ele executa apenas uma vez, exatamente na hora de carregar a página.
E se caso tiver elementos no array (uma variável por exemplo), a cada mudança no elemento ele vai disparar.
Não fazendo propaganda, mas já divulgando, ele explica mais detalhado todos estes detalhes no curso completo dele na Udemy.
@@WesleySantos-wv7hd Sua explicação ajudou demais, valeu mesmo, tava tendo dificuldade de entender o useEfect.
sim sim, to na mesma.
5 horas da manhã e eu ainda to aqui kkkkkkkk ou eu fico rico ou eu ficou doido
kkkkkkkkkk
@@marciolimaphotoshop244 E aí, 1 ano depois: ficou rico ou doido? ueheuhe
Excelente ! Muito bem explicado ! ! Parabéns pelos vídeos ! ! !
A parte ruim de tantos componentes é que se vc esquecer de alguma coisa e for assistir a aula depois pra ver só uma explicação específica, vc boia porque ja não lembra mais qual componente faz o que, ou o que ele retorna
Muito real! Uma sugestão pra isso é comentar tudo, ir pegando o jeito e entender o que precisa ser comentado ou não.
O meu está dando um erro quando eu seleciono uma option, aparece options.map is not a function
Beleza. Curso muito didático
muito obrigado!
Mais uma aula top!
Essa aula me quebrou muito, kkkkkkk mas no final deu tudo certo, proxima...
Pra quem estiver com alguns erros nesta aula dar um
npm run backend novamente e depois em outra aba do terminal npm start. Comigo funcionou assim!
ahhh e o history.push só coloque history que vai da certo.
obrigado
Muito obrigado!
Nossa cara, eu estou adorando o curso, muito boa a didática e estou entendo muito bem o conteúdo, mas eu estou (por escolha própria) fazendo o projeto inteiramente em typescript com o strict mode ligado, e embora nas outras aulas não foi um problema traduzir o que o professor fazia para o meu código esta aula, por algum motivo NÃO PAROU DE DAR ERRO, foi uma dificuldade que só, e pra consertar eu tive que quebrar a cabeça e até aprendi conceitos novos em react só para fazer as coisas simples e rápidas que ele está fazendo em javascript. Isso só mostra como typescript tem seus prós e contras, mas ainda usarei ele, já que é bem difícil algo ir para produção com erro, e o fato de dar tantos erros com um código simples em javascript tbm mostra o quão perigoso pode ser usar javascript. Mas com certeza considerarei usar mais js das proximas vezes
gente vcs que estao com problemas de estar so cadastrando o id deve ser algum erro de ortografia nessa linha do fetch ("content-type" : "application/json") olhem direito pra ver se n tem erro na digitação
você me salvo cara kkkkk
e eu que tinha digitado: 'content-type': 'application.json', com ponto pqp!!! só estava indo o id, vlw ai
mt difiicl
Para quem está com problema no PUSH e não está direcionando para a página projects, basta remover o push e usar history('/projects', { message: 'Projecto criado com sucesso!'})
Obrigado Amigo!!
O que seria esses "..." antes de project em 08:27?
Grande Minerador ... beleza ?! Isso significa: " é o STATE do project até o momento" e iremos alterar alguns dados para ... "
Ex:
const [state, setState] = useState({});
setState(prevState => {
// Object.assign também funcionaria
return {...prevState, ...updatedValues};
});
espero ter ajudado !!!
Show bro! Ajudou sim!
Line 42:40: 'selectedIndex' is not defined no-undef
onde q ele ta definido pq nao encontrei no video em momento algum, só colocou ele ali e onde definiu????????????
O GPT me ajudou!!!!!
se alguem tiver mesmo erro, é name: e.target.options[e.target.selectedIndex].text,
eu tinha colocado separado o target selectedIndex
Olá Matheus, me dá uma dica aqui: na aula 24 no redirecionamento da rota, não se usa mais o useHistory, devido a atualização do router-dom, qual utilizo ?
como fica a sintaxe : dentro do Post history.push('/projects', { message: 'Projeto criado com suceso'})
o senhor deve trocar por const history = useNavigate() e importar o useNavigate(), que resolve o problema
Assistindo a aula pela terceira vez... meu QI é baixo professor, vai com calma! kkkkkk
Obrigado pelo excelente conteúdo!
Maravilha! 👏👏👏
valeu Eric!
De onde saiu esse id abaixo de services no db.json? Não consegui encontrar no código de onde ele veio
mano, pelo que entendi esse ID veio automaticamente. Ele é colocado sempre que voce não colocar, é uma regra do json-server, acho que ele esqueceu de comentar isso.
Eu tmb fiquei com essa dúvida mas dps de muito revisar tudo acredito que é automático do json-sever caso a gente não definir
Para os que não entenderam esta parte "setProject({...project, [e.target.name]: e.target.value})" dentro do objeto passado para setProject, é simplesmente adicionado mais um valor ao objeto, o mesmo de fazer isso aqui, project["name"] = "test", porem o que se recebe como key e valor é dinâmico baseado no nome e no valor do campo que está sendo alterado, espero te ajudado
Matheus faz um curso cadastro com PHP Mysql integrando com React
no meu db.json so chegou os IDs dos projetos
até essa aula tava de boa,agora simplesmente eu não sei nada kkkkkkkkk
eu parei de entender as coisas quando começou os useState kkkk
Professor, se eu usar tentar enviar esses dados para um banco real, como sqlite, ele ate carrega os dados no banco, mas esses dados nao sao do formulario enviado, meu backend foi feito em flask utilizando a doc Swagger e esta funcionando bem. Estou achando que e no React na hora de definir o body: JSON.stringify(project), de alguma forma esses dados nao estao sendo enviados, o banco ate recebe a solicitacao, mas ele adiciona um modelo q ja esta la como padrao e nao os dados do formulario. poderia me explicar o que preciso fazer pra enviar corretamente esses dados do formulario para o banco de dados. Talvez essa seja a duvida de muito gente... obg
Meu erro foi comentar a linha que executa justamente a ação handleSubmit no ProjectForms. Eu jurei que o professor havia comentado essa linha e depois não mais retirei. No final do projeto, não estava acontecendo nada quando eu clicava em salvar o novo projeto.
Fiquei uns 15mins comparando os códigos!
E de fato essa aula eu fiquei bastante perdido também! Até as aulas anteriores ficou tudo muito claro, mas nesta aula já embaralhou tudo!
Por exemplo... o "project" no arquivo NewProject e ProjectForm de onde veio mesmo essa variável? Onde eu criei ela e para que estou a usando?
Quando clico em criar projeto não para página projetos
E só cadastra os id na dB.json em categories
Sensacional :)
valeuu Aldecir!
pois no console esta mostrando so esta cadastrando id no db.json
aqui tbm tava com esse mesmo problema, revisando percebi que havia escrito errado a palavra application no headers do NewProject.js
Não entendi a finalidade de monitorar os valores do input em um evento 'change' já que até então esses valores não são repassados pra nenhum outro lugar do DOM e só irão ser capturados na hora do evento 'submit' para a DB. Enfim, curso muito bom estou aprendendo bastante, só tenho a agradecer.
não use push
use navigate(/'project')
Até agora essa foi a aula mais complicada pra mim. Vou rever e tentar entender novamente...
Professor, poderia trazer um curso de Quasar(VueJS)... Seria muito interessante pra quem já assistiu o seu curso de VueJS!
oi Degan, vou anotar sua sugestão, obrigado!
Oi, alguém teve problemas na parte do submit? Eu não consigo redirecionar para projects e o console reclama dizendo que handleSubmit is not a function. Alguém passou por isso? O trecho do código com problemas é " const submit = (e) => {
e.preventDefault()
handleSubmit(project)
}"
Olá, eu tive esse mesmo problema, esqueci de colocar as ( ) na inicialização do useHistory ficar assim useHistory();
o meu deu esse mesmo problema, esqueci de colocar o handleSubmit, btnText e projectData entre {} na function
O problema já foi dito para vc no console. Não é uma função, vc declarou uma variável "const submit" e não uma função. É so alterar o "const" por "function"
Conseguiu resolver?
@@queridosetup na vdd o seu ta errado amigo, ta certo ele vir como uma const pq é um => ent tem q ter
Essa aula até agora foi a mais complicada pra mim, muito assunto ao mesmo tempo, muito código na mesma aula kkk
também to na mesma
Misericórdia!
Vou ter que rever essa aula umas 3 vezes pra entender de onde vem o quê e pra onde vai quem 🤣🤣🤣
Uma dica para a galera que está com dificuldade na aula, vai pausando e pequisando por cada coisa que você não sabe, assista a aula umas 3 vezes até fixar, não copie o codigo e vai para a proxima lá na frente você vai se frustar
Estou tendo problema com value dos "Input", ao colocar o if ternário nestes value, os campos input na aplicação param de funcionar (acredito que podem estar sempre recebendo o vazio por sempre obter resposta false no if ternário). Quando faço sem estes if ternários nos input, a aplicação funciona normalmente. Porém, algumas aulas a frente, quando exibimos os projetos já criados, nenhum informação dos projetos é buscada com sucesso.
tive o mesmo problema, ai tirei o if ternario resolveu, agora quando cadastro o projeto nao cadastra o nome nem o valor
Top essa aula, Matheus poderia usar esse projeto como base e criar um projeto de banco de dados não relacional mondoDB ou firebase.
opa Claudemar, boa ideia, aproveitando: vai ter um de React com MongoDB no meu curso de Node, que lança no comecinho de outubro =)
@@MatheusBattisti
Manda lá, que vou me inscrever no curso 😁
Parece dificil, mas isso porque vocês estão olhando o código como se fosse apenas uma linha, mas na verdade são varias etapas que vão tomando forma com o passar do tempo. E outra, esses códigos são a forma como o professor utiliza o React, eu por exemplo, irei construir um projeto semelhante a esse, mudando muita coisa, porque vai ser minha forma de programar.
o meu deu dois erros, a página mostou no navigate e no handleChange, como poderia resolver elas ? não está sendo cadastrado nada no db, apenas o id. Alguém pode me ajuda ?
tbm to com esse mesmo problema cara, heelp me matheus
Também estou com o mesmo problemas, no meu caso o erro foi uncaught type error project.category is undefined, já pesquisei e refiz o código e não consigo encontrar a solução
O meu não mostra erro, mas não direciona para a página de projetos, não esta salvando no "db.json' e muito menos mostrando no URL : " localhost:5000/projects" . Faz mais de dois dias que estou travado nesta aula e não consigo sair para dar sequencia. Acredito que seja essas atualizações do React. Agora não sei o que faço.
@@TheSantana1984 é so mudar o useHistory para useNavigate, e retirar o push do History que irá funcionar
Boa noite @@alamo_DevFlow , tudo bem!? Então eu já fiz isso, na realidade fiz desde o iniciou, acredito que devo ter feito alguma outra coisa errada para não esta dando certo. Mas obrigado pelo retorno. Vou ter que fazer uma varredura em todo código para tentar descobrir o erro.
Meu new project não funciona, mesmo depois de fazer algumas alterações.
Boa noite! Pessoal estou com um problema aqui, quando eu envio o projeto pro db.json ele chega la com um id aleatorio (fora o id da categoria), acho que é algum valor perdido na memoria, não estou conseguindo identificar de onde está vindo, eu consigo definir um valor para ele no setProject do arquivo ProjectForm.js, mas não consigo identificar de onde vem essa propriedaade id que não era para existir, mais alguem teve esse problema? Ele chega la no arquivo db.json assim:
{
"id": "03a0", //Esse é o id que não sei de onde está vindo
"name": "teste",
"budget": "5000",
"category": {
"id": "3",
"name": "Design"
},
"cost": 0
}
Nessa o bicho pegou... To fazendo com typescript. Mas pediu tanta tipagem..
Mais alguém está com o problema de redirecionamento da pagina?
No meu ta tendo uma coisa estranha... nao atrapalha no andamento do curso so que tipo....
o .json nao recebe a categoria que eu escolho.
no categories:[...] ta tudo lá, mas cada um dos projetos nao consegue puxar a categoria que é a deles
De mais alguem ta assim tb?
acho que sou o unico que assiste so para ir copiando o professor ... para depois voltar tudo de novo e tentar aprender
Quando clico em criar projetos o meu está indo para uma pagina que nao existe. Alguem sabe me informar o erro?
mano do céu
Mais alguém em 2023?
Só quem ta tentando ingressar nesse mercado no 2 semestre deixa aquele like!!
opa pessoal boa noite alguém pode me ajudar com um problema no category , não estou conseguindo puxar as opções , aparece e o nome json , vocês pegarão esse erro ?
vc tem que dar o npm run backend
quando iniciar o projeto, e depois em outra aba do terminal npm start
ve se funciona
@@VictorEmannuel aqui funcionou, vlwww
o meu projeto não cria o category nem com reza alguem tem uma luz?
Alguém que teve problema com "handleSubmit is not a function" conseguiu resolver?
oii o meu so esta cadastrando o id no banco alguém poderia da uma ajudinha ai?
Tbm estava com esse problema, depois ví que havia escrito no header Contety-Type quando o correto é Content-Type, verifique se não cometeu um erro de digitação tbm : )
Mesmo com as respostas lidas aqui continuo com o 'handleSubmit is not a function' . Minha function ProjectForm( handleSubmit, projectData){ tá deste jeito, e minha
assim
galera o meu envia os dados pro db.json, mais n entra na pagina de projects, alguem tem alguma ideia do que pode estar errado ?
Idem aqui
pode ser o link que vc ta redirecionando confere pra ver se bate com o link do App.js
pois é. o meu entra em categories
O meu está dando o erro " Attempted import error: 'useHistory' is not exported from 'react-router-dom' (imported as 'useHistory').
ERROR in ./src/components/pages/NewProject.js 11:18-28
export 'useHistory' (imported as 'useHistory') was not found in 'react-router-dom' (possible exports:"
Pra quem está com problemas com o useHistory, ele foi substituido no react-router-dom v6, agora deve ser usado o useNavigate(). Ex: import { useNavigate } from 'react-router-dom'; const navigate = useNavigate();
Fala turma, beleza?! No meu projeto não gerou o id: 1, igual o do exemplo do professor. No meu gerou um id aleatório(f21d). Alguém mais está passando por essa situação ?
Meu funcionou mais não;-; os campos de texto não tão escrevendo mais nada
gente, pq que quando a gnt clica em criar projeto a gnt vai pra tela de projetos ? n encontrei nenhum link direcionando pra lá
pq e onde seu projeto vai ser salvo
Para mais alguém ocorreu o erro "handleSubmit is not a function"?? parei nesse ponto e não consigo mais evoluir, isso no momento de criar o projeto.
function ProjectForm({handleSubmit, btnText, projectData})
coloca aqui
Essa aula foi a mais complicada de todas. pretendo rever e entender melhor, muitos comandos, aquela parte de Get e Post.catch.
Esse é um padrao de sintaxe que faz parte da ferramenta REST API por isso a sintaxe e estranha
Por que o objeto tinha uma chave entre []? Exemplo: { [even.target.name]: e.target.value }. Por que estava entre colchetes?
Minha duvida tambem
@@joaovictor-pu9lz descobri depois. O objeto em Java script tem o seguinte esquema: { Key: vale }. Como a gente quer dizer que o valor armazenado event.targe.name é o nome da chave, a gente precisa colocar entre parênteses para forçar isso, como a gente coloca as chaves no corpo do código quando queremos usar alguma expressão. Se a gente não colossasse, estaríamos dizendo que o nome da chave é event.target. name e não o valor.
Entendi, eu tinha ficado meio confuso, porque a desestruturação com aqueles dois pontos muda a forma de chamada do atributo desestruturado.. mas entendi sim.. valeu mano.
Pra alguém o código function createPost(project){
project.cost = 0
project.services = [] , volta assim pro db.json "cost": 0,
"services": [],
"id": 1 e com isso não retorna nada? impedindo os valores do name do input
o meu deu isso tbm, conseguiu resolver?
Bom dia, depois que adicionei o value={project.name ? project.name : ''} e value={project.category ? project.category.id : ''} Não consigo mais inserir dados nos input nem selecionar as categorias. Alguem passou por isso?
eae amigão seu problema ja foi resolvido
Fiquei um pouco confuso pois vi algumas coisas que pensei serem atribuições do backend (fora a que o Matheus comentou no video). Mas como não entendo muito sobre desenvolvimento, posso estar enganado. Alguma luz galera?
Eu estava entendendo tudo até então, mas essa aula pegou, acho que preciso de alguns conhecimentos prévios. Alguém recomenda algum pré-requisito ou aulas que possam me ajudar nessa aula? Desde já, muito obrigado.
@COREY TATTOO ART Muito obrigado, já vi essa aula umas 8x kkkkkkkkk, mas não vou desistir
Também preciso, alguma indicação?
Visto
alguem me ajuda meu fica danto esse erro
Failed to reload /src/componets/project/Form.jsx. This could be due to syntax errors or importing non-existent modules. (see errors above)
sabem porque
no select
e ta esse erro tambem
react-dom_client.js?v=11dd3758:sourcemap:521 Warning: You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.
at select
at div
at Select (localhost:5173/src/componets/Form/Select.jsx?t=1659629763291:19:3)
at form
at Form (localhost:5173/src/componets/project/Form.jsx?t=1659630208823:24:3)
at div
at NovoProjeto (localhost:5173/src/componets/pages/NovoProjeto.jsx?t=1659630208823:22:19)
at Routes (localhost:5173/node_modules/.vite/deps/react-router-dom.js?v=11dd3758:1157:5)
at div
at Container (localhost:5173/src/componets/layoute/Container.jsx:20:45)
at Router (localhost:5173/node_modules/.vite/deps/react-router-dom.js?v=11dd3758:1104:15)
at BrowserRouter (localhost:5173/node_modules/.vite/deps/react-router-dom.js?v=11dd3758:1233:5)
at App
printWarning @ react-dom_client.js?v=11dd3758:sourcemap:521
👏👍
valeu Zeriel! =)
Alguém teve o problema do nome do projeto ir para as categorias depois?
Conseguir arrumar galera, era um problema bobo, no fetch do Novo Projeto, eu tinha redirecionado para as categorias, ao invés de projects.
@@felipesoares6245 to com esse mesmo erro aí
nao consegui aplicar os values no select e inputs, dava sempre erro,alguem pode ajudar?
O meu tbm, deu o mesmo bug do vídeo no minuto 14:00 mas a correção não funcionou no meu. Não consigo escolher uma opção do "Select". ajuda aê Matheus
@@marcosoliveira-wv6rx eu tava com esse problema , tenta no componente Select.js troca o Value={value || ''} para defaultValue={value || ''}
@@1988ademir Aqui deu certo! Salvou!!!!!
Se eu disser que entendi tudo estarei mentindo kkkkkkkkkk
Apartir dessa aula precisa ter um conhecimento de back end neh?
Exatamente
Você me ajudou pela décima quarta vez nos trabalhos da faculdade Matheus
Muito obrigado cara eu te aaaamooooo kkkkkkkkkkkkkkkkkkkkkkkkkkkk
Tudo funcionou a não ser uma coisa: no meu arquivo db só salva uma id, e nada mais. E acho que fiz tudo certo.
o meu tbm so pega a ID na categorie não ja tentei de tudo pra pegar o name mas não vai nem a pau.
@@blima1504 Eu já fiz um outro projeto mais atual do canal e deu certo. Agora estou refazendo tudo do zero, pra funcionar nesse também. O projeto atual é o costs, deste mesmo canal. Tudo redondo e funcionando.
@@blima1504 o nome do projeto é: APRENDA REACT EM 2 HORAS - CRIE SEU PRIMEIRO PROJETO EM REACT. Tudo num video só.
@@rogeriovaz4420 opa vlw!! vou procurar!
@@rogeriovaz4420 eu consegui encontrar, a diferença é que ele não trabalha com esse banco de dados local igual o do Costs, que justamente onde estou tendo problemas, caso tenha conseguido inserir a categoryno db.json poderia compartilhar o Github pra eu dar uma olhada?
Meu Deus, me perdi totalmente
Tava dando erro aqui e descobri que era porque faltou literalmente UM parêntese.
Que bagunça esse código nesta aula. Vamos continuando...
Quem vai chegar no fim do curso? R: EU!!!!!
aqui eu me entrego para a depressão
mano essa aula me quebrou, ta me dando ate um vontade de desistir :(
Vendo essas aulas percebo que tenho que estudar mais lógica de programação que é um ponto fraco meu.