Duvida ( talvez básica de React) #2097
Replies: 2 comments
-
Bom dia, xará @Kaedh. Você pode evitar o erro ao fazer: //Inicialmente seta o cliente selecionado como sendo o primeiro da lista
useEffect(() => {
if (customers) setSelectedCustomerId(customers[0].id)
}, [customers]) Existe ainda a opção de colocar um optional chaining pra verificar se o customers está vazio. Outra opção também é controlar diretamente o carregamento dos dados no primeiro //Quando o app inicia carrega os dados
useEffect(() => {
if (customers.length === 0) setCustomers(data)
}, [customers]) Espero que tenha ajudado. |
Beta Was this translation helpful? Give feedback.
-
Talvez o problema seja mais conceitual. Pense assim: na primeira vez que você renderizar, você ainda não chamou a API. Com isso você ainda não tem os dados pra exibir e também não deveria dar erro por isso. Pois mesmo com Geralmente tem-se duas alternativas a esta solução:
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Pessoal estou desenvolvendo um projetinho pessoal aqui usando React, e estou com um problema.
O projeto consiste em um site que mostra uma lista de clientes cadastrados no lado esquerdo e o formulário preenchido com os dados destes clientes cadastrados no lado direito.
Eu queria que assim que o site fizesse o primeiro render um state chamado customers fosse preenchido com um JSON(estou usando uma variável com os dados pra simula-los primeiro) e depois que esse state fosse setado outro state chamado selectedCustomerId fosse setado como sendo o primeiro elemento dessa lista de clientes.
Percebi que após o primeiro render como o customers é igual a [] o customers[0].id dá undefined e clasha o site, teria alguma forma de fazer como se fosse um passo a passo? primeiro seta os clientes e depois disso seta o cliente selecionado?
Posso ter entendi errado como funciona o useEffect ou minha lógica está ruim também.
Enfim desculpa se a dúvida for muito boba mas pesquisei bastante sobre formas de fazer isso e tudo está muito confuso pra mim ainda. Qualquer dica é bem vinda :p.
Beta Was this translation helpful? Give feedback.
All reactions