它返回固定的列号,当您添加更多联系人时,它将始终为 3 列,我需要更改响应式设计的数字,例如它应该是 2 列或 1 基于屏幕分辨率。
const contactsCollsMemo = useMemo(() => {
return contactsData?.reduce((acc, contact, i) => {
acc[i % 3] = (acc[i % 3] || []).concat(contact);
return acc;
}, {} as { [key: string]: Contact[] });
}, [contactsData]);
return (
<div className="contacts-wrapper">
{Object.keys(contactsCollsMemo || {}).map((key) => (
<ContactBlock key={key} contacts={contactsCollsMemo[key]} />
))}
</div>
)
//component ContactBlock:
<div className="contacts-block">
{contacts.map((contact) => (
<div key={contact.id} className="contacts-info">
<div className="contacts-name">{contact.name}</div>
<div className="contacts-phone">Тел.: {contact.phone}</div>
<div className="contacts-email">E-mail: {contact.email}</div>
</div>
))}
</div>