Advertisement
dvjsharma

Nest params in URL without loosing already existing ones

Sep 15th, 2023 (edited)
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 0.95 KB | Source Code | 0 0
  1. function genNewSearchParamString(key, value) {
  2.     const sp = new URLSearchParams(searchParams)
  3.     if (value === null) {
  4.       sp.delete(key)
  5.     } else {
  6.       sp.set(key, value)
  7.     }
  8.     return `?${sp.toString()}`
  9.     }
  10.  
  11. <div>
  12.     <Link to={genNewSearchParamString("type", "jedi")}>Jedi</Link>
  13.     <Link to={genNewSearchParamString("type", "sith")}>Sith</Link>
  14.     <Link to={genNewSearchParamString("type", null)}>Clear</Link>
  15. </div>
  16.              
  17.              
  18. function handleFilterChange(key, value) {
  19.     setSearchParams(prevParams => {
  20.       if (value === null) {
  21.         prevParams.delete(key)
  22.       } else {
  23.         prevParams.set(key, value)
  24.       }
  25.       return prevParams
  26.     })
  27.   }
  28.  
  29. <div>
  30.     <button onClick={() => handleFilterChange("type", "jedi")}>Jedi</button>
  31.     <button onClick={() => handleFilterChange("type", "sith")}>Sith</button>
  32.     <button onClick={() => handleFilterChange("type", null)}>Clear</button>
  33. </div>
Tags: react
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement