Options
All
  • Public
  • Public/Protected
  • All
Menu

@bytesoftio/use-query

Installation

yarn add @bytesoftio/use-query or npm install @bytesoftio/use-query

Table of contents

Description

This package provides a convenient way working with url query segments, when using react-router. You don't have to build a valid querystring anymore, whenever you want to update a query param, for example during sorting, filtering, pagination and other deep linking related stuff.

Usage

useQuery

Hook into any query param you want, right inside your React component. Updating a query param in the url is as easy as a regular setState. Defining default values for each query param saves you some boilerplate code.

import React from "react"
import { useQuery } from "@bytesoftio/use-query"

const Component = () => {
  // hook into multiple query params and provide default values 
  const [query, setQuery] = useQuery({ page: 1, order: "asc" })

  const goToPage3 = () => setQuery({ page: 3 })
  const toggleSorting = () => setQuery({ order: query.order === "asc" ? "desc" : "asc" })

  return (
    <div>
      <button onClick={toggleSorting}>Change sorting order</button> 
      <button onClick={goToPage3}>Go to 3rd page</button>
    </div>
  )
}

Index

Type aliases

Functions

Type aliases

UseQuery

UseQuery: <TState>(initialState: TState) => [TState, (state: Partial<TState>) => void]

Type declaration

    • <TState>(initialState: TState): [TState, (state: Partial<TState>) => void]
    • Type parameters

      • TState: object

      Parameters

      • initialState: TState

      Returns [TState, (state: Partial<TState>) => void]

Functions

Const useQuery

  • useQuery(initialState: TState): [any, setQuery]
  • Parameters

    • initialState: TState

    Returns [any, setQuery]