fair-rose
fair-rose4w ago

How can I replace or add more params to url by refine hooks?

How can I replace or add more params to url by refine hooks?
5 Replies
kapa.ai
kapa.ai4w ago
Hi @tingadev. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave: ---------------------- To replace or add more parameters to the URL using Refine hooks, you can utilize the syncWithLocation feature and the setFilters function from the useTable hook. Here's how you can do it: 1. Enable syncWithLocation: First, make sure you have enabled syncWithLocation in your Refine configuration. This allows Refine to sync the table state with the URL parameters Sharing the current page with filters (https://refine.dev/blog/build-admin-panel-with-material-ui-and-strapi/#sharing-the-current-page-with-filters).
<Refine
// ...other props
options={{
syncWithLocation: true
}}
/>

<Refine
// ...other props
options={{
syncWithLocation: true
}}
/>

2. Use setFilters function: You can use the setFilters function from the useTable hook to add or replace URL parameters. Here's an example:
import { useTable } from "@refinedev/core";

const { setFilters } = useTable();

// To add or replace parameters
setFilters([
{
field: "pageSize",
operator: "eq",
value: 20,
},
{
field: "page",
operator: "eq",
value: 2
}
]);

import { useTable } from "@refinedev/core";

const { setFilters } = useTable();

// To add or replace parameters
setFilters([
{
field: "pageSize",
operator: "eq",
value: 20,
},
{
field: "page",
operator: "eq",
value: 2
}
]);

This will update the URL with the new parameters, resulting in something like: &pageSize=20&page=2 Github Issue: Pagination for useTable hooks (https://github.com/refinedev/refine/issues/2802). 3. Custom parameters: You can also add custom parameters by including them in the filters array:
setFilters([
{
field: "customParam",
operator: "eq",
value: "customValue",
}
]);

setFilters([
{
field: "customParam",
operator: "eq",
value: "customValue",
}
]);

This will add &customParam=customValue to the URL. Remember that when using syncWithLocation, any changes to the filters will automatically update the URL, making it easy to share the current state of your table, including pagination, sorting, and custom filters useNavigation API Reference (https://refine.dev/docs/routing/hooks/use-navigation/#api-reference). If you need more control over URL parameters, you can also consider using the useParsed hook to access and manipulate URL parameters directly useParsed Documentation (https://refine.dev/docs/routing/hooks/use-parsed/). ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ----------------------
kapa.ai
kapa.ai4w ago
<@761921731505946634> Kapa.ai is still learning and improving, please let me know how I did by reacting below.
fair-rose
fair-roseOP4w ago
How to use useNavigation to append url param? @kapa.ai
kapa.ai
kapa.ai4w ago
Let me check the knowledge base for you again. One moment! :books: ---------------------- To append URL parameters using the useNavigation hook in Refine, you can use the list method along with the meta parameter. Here's how you can do it:
import { useNavigation } from "@refinedev/core";

const { list } = useNavigation();

// To append URL parameters
list("posts", undefined, undefined, {
meta: {
param1: "value1",
param2: "value2"
}
});
import { useNavigation } from "@refinedev/core";

const { list } = useNavigation();

// To append URL parameters
list("posts", undefined, undefined, {
meta: {
param1: "value1",
param2: "value2"
}
});
This will navigate to the list page of the "posts" resource and append the URL parameters param1=value1 and param2=value2 to the URL useNavigation Return Values (https://refine.dev/docs/routing/hooks/use-navigation/#return-values). It's important to note that the useNavigation hook is considered a legacy hook, and while it's not deprecated, it's not recommended for use in newer applications. Instead, Refine recommends using your router library's hooks and methods for custom navigations useNavigation Documentation (https://refine.dev/docs/routing/hooks/use-navigation/). For more modern and flexible routing in Refine, you might want to consider using the useGo and useGetToPath hooks, which provide better type support and more control over URL parameters useNavigation Documentation (https://refine.dev/docs/routing/hooks/use-navigation/). Remember that when using useNavigation or other routing hooks, the meta object you pass will be used to generate query parameters in the URL. This allows you to easily add or modify URL parameters as needed for your application's routing requirements. ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ----------------------
kapa.ai
kapa.ai4w ago
<@761921731505946634> Kapa.ai is still learning and improving, please let me know how I did by reacting below.

Did you find this page helpful?