Expandir cards do Material UI individualmente (React + Js) [Resolvido] #1676
-
Oi, pessoal! Esse é meu primeiro post aqui, então sorry se tiver fazendo algo errado. Estou migrando recentemente pro js/react e ainda estou aprendendo, vocês poderiam me ajudar com uma dúvida? Estou usando React/Js pra criar uma tela que exibe 2 cards do Material UI, estilizados por styled-components. O problema é: os cards são controlados pelo mesmo estado, então quando um é expandido, todos acabam sendo expandidos também. Eu SEI que estou fazendo algo errado com os estados (ou talvez com a função que controla eles), mas não sei exatamente como resolver.... EDIT: codesandbox: https://codesandbox.io/s/mutable-dust-lwljo Esse é o componente dos cards:
E é aqui que eu renderizo os cards:
Alguma luz? Obrigado, pessoal! |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments
-
Aparentemente está tudo certo já que cada |
Beta Was this translation helpful? Give feedback.
-
@victorferreira Opa, obrigado pela resposta e pela sugestão! Fiz um mock no codesandbox e agora da pra ver direito o que falei: ao expandir os cards, acabo expandindo dos dois juntos, porque é um estado só controlando ambos. Eu só não sei como evitar isso, porque se eu criar dois estados, não vou saber como fazer a função reconhecer em QUAL card eu o usuário ta clicando, sabe? |
Beta Was this translation helpful? Give feedback.
-
Como eu disse anteriormente, o seu código react está correto. Cada |
Beta Was this translation helpful? Give feedback.
-
@victorferreira Caramba, muito obrigado, eu tava quebrando a cabeça e era TÃO simples! Realmente você tava certo, bastou adicionar um |
Beta Was this translation helpful? Give feedback.
Como eu disse anteriormente, o seu código react está correto. Cada
SiteCard
controla seu próprio estado, e o problema no caso é com CSS. Os cards ocupam a altura do container, daí quando um card expande todos os outros tem oheight
alterado. Uma possível solução é definir umheight
fixo pra cada card.