⨯ useSearchParams() should be wrapped in a suspense boundary at page "/search" can somebody help me
Answered
i_lost_to_loba_kreygasm posted this in #help-forum
'use client';
import { Suspense } from 'react';
import { useSearchParams } from 'next/navigation';
import { Box, Container, Flex, Heading } from "@chakra-ui/react";
import market from '@/market';
import GreenCard from "@/components/Card";
function SearchedResults() {
const searchParams = useSearchParams();
const query = searchParams.get('q')?.toLowerCase(); // Normalize the query for case-insensitive matching
return (
<Suspense>
<Container py={16} px={[4, 16, 16]} maxW={1260}>
<Box maxW={940} mx={'auto'}>
<Heading mb={8} fontSize={'4xl'}>Searched Items</Heading>
<Flex mx={'auto'} justifyContent={'center'} gap={'20px'} wrap={'wrap'}>
{market
.filter((i) => i.name.toLowerCase().includes(query))
.map((item, index) => (
<GreenCard
key={index}
name={item.name}
description={item.description}
price={item.price}
imageUrl={item.imageUrl}
/>
))}
</Flex>
</Box>
</Container>
</Suspense>
);
}
export default SearchedResults;Answered by B33fb0n3
wrap your "SearchResults" component inside a suspense boundary and the error is gone. Like this:
<Suspense fallback={<p>Some Fallback</p>}>
<SearchResults />
</Suspense>6 Replies
@i_lost_to_loba_kreygasm js
'use client';
import { Suspense } from 'react';
import { useSearchParams } from 'next/navigation';
import { Box, Container, Flex, Heading } from "@chakra-ui/react";
import market from '@/market';
import GreenCard from "@/components/Card";
function SearchedResults() {
const searchParams = useSearchParams();
const query = searchParams.get('q')?.toLowerCase(); // Normalize the query for case-insensitive matching
return (
<Suspense>
<Container py={16} px={[4, 16, 16]} maxW={1260}>
<Box maxW={940} mx={'auto'}>
<Heading mb={8} fontSize={'4xl'}>Searched Items</Heading>
<Flex mx={'auto'} justifyContent={'center'} gap={'20px'} wrap={'wrap'}>
{market
.filter((i) => i.name.toLowerCase().includes(query))
.map((item, index) => (
<GreenCard
key={index}
name={item.name}
description={item.description}
price={item.price}
imageUrl={item.imageUrl}
/>
))}
</Flex>
</Box>
</Container>
</Suspense>
);
}
export default SearchedResults;
wrap your "SearchResults" component inside a suspense boundary and the error is gone. Like this:
<Suspense fallback={<p>Some Fallback</p>}>
<SearchResults />
</Suspense>Answer
@i_lost_to_loba_kreygasm js
'use client';
import { Suspense } from 'react';
import { useSearchParams } from 'next/navigation';
import { Box, Container, Flex, Heading } from "@chakra-ui/react";
import market from '@/market';
import GreenCard from "@/components/Card";
function SearchedResults() {
const searchParams = useSearchParams();
const query = searchParams.get('q')?.toLowerCase(); // Normalize the query for case-insensitive matching
return (
<Suspense>
<Container py={16} px={[4, 16, 16]} maxW={1260}>
<Box maxW={940} mx={'auto'}>
<Heading mb={8} fontSize={'4xl'}>Searched Items</Heading>
<Flex mx={'auto'} justifyContent={'center'} gap={'20px'} wrap={'wrap'}>
{market
.filter((i) => i.name.toLowerCase().includes(query))
.map((item, index) => (
<GreenCard
key={index}
name={item.name}
description={item.description}
price={item.price}
imageUrl={item.imageUrl}
/>
))}
</Flex>
</Box>
</Container>
</Suspense>
);
}
export default SearchedResults;
Wrap it with suspension when you implementing on other page or route
Iike
<Suspense fallback={} >
<SearchedResults>
<Suspense>
Iike
<Suspense fallback={} >
<SearchedResults>
<Suspense>
@CHEEMDA MAN ??
you said exactly the same that I said here as well: https://nextjs-forum.com/post/1311686834551656489#message-1311696766197829684 (<---- click)