W/o custom encoder/decoder:
const {
state: { globalFilter }
} = useTableSearchParams(router, {
defaultValues: { globalFilter: "hello world" },
});
console.log(globalFilter); // "hello world"
W/ custom encoder/decoder:
const {
state: { globalFilter }
} = useTableSearchParams(router, {
defaultValues: { globalFilter: "hello world" },
encoders: {
globalFilter: (value) => ({
globalFilter: JSON.stringify(value),
}),
},
decoders: {
globalFilter: (query) => {
return query["globalFilter"] ? JSON.parse(query["globalFilter"] as string) : (query["globalFilter"] ?? "");
},
},
});
console.log(globalFilter);
// Expected result: "hello world"
// Actual result: "" - empty string
W/o custom encoder/decoder:
W/ custom encoder/decoder: