-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Can't use in Nextjs #127
Comments
same here |
Same for us. Version 2.1.7 and 2.2.2 seem to work fine; 2.3.0 breaks. |
Same here also with Remix v2 |
Same here with Next 14.2.5 after upgrading to v2.3.0. |
Same. |
I am able to use it in Nextjs app router 'use client'
import Masonry, { ResponsiveMasonry } from 'react-responsive-masonry'
import { FC } from 'react'
const columnsBp = {
350: 2,
750: 3,
992: 4
}
export const SectionMasonryGrid:FC<Props> = ({ data }) => {
const Items = useMemo(() => getItems(data), [data])
return (
<section>
<ResponsiveMasonry columnsCountBreakPoints={columnsBp}>
<Masonry gutter={'2vw'}>
{Items}
</Masonry>
</ResponsiveMasonry>
</section>
)
} The only thing right now is that im having a bug related to hydration which sucks because i want to be SSR but if i use a isMount hook this doesn't happen. Hope it helps. |
confirmed that it works on :
interestingly something like this fails. Notice the
|
hello, any workarounds for this? |
For now, You should strict version of
|
Hi, |
// components/ui/masonry.ts(x)
'use client';
import dynamic from 'next/dynamic';
export const ResponsiveMasonry = dynamic(() =>
import('react-responsive-masonry').then((mod) => mod.ResponsiveMasonry),
);
export const Masonry = dynamic(() => import('react-responsive-masonry')); This have FOUC though so you might want to handle that. |
Anyone knows a workaround? |
try using v2.2.0 or dynamic loading |
After running this command on node version v20.18.0 solved the issue in my case
my next version is
|
Running |
Im Fix with Dynamic Import: const ResponsiveMasonry = dynamic(
() => import("react-responsive-masonry").then((mod) => mod.ResponsiveMasonry),
{
loading: () => <p>Loading...</p>,
ssr: false,
}
);
const Masonry = dynamic(
() => import("react-responsive-masonry").then((mod) => mod.default),
{
loading: () => <p>Loading...</p>,
ssr: false,
}
); |
I had the exact same issue and can confirm that downgrading to |
v2.2.0 is also working for me |
I installed as per the docs and I set in a component within a nextjs project.
Expect behavior:
The component works as expected.
Actual behavior:
I get this error
⨯ TypeError: Cannot set property ResponsiveMasonry of #<Object> which has only a getter
The text was updated successfully, but these errors were encountered: