GET with query string with Fetch in React Native

前端 未结 7 1740
情话喂你
情话喂你 2020-12-29 01:51

I am making a request like this:

fetch(\"https://api.parse.com/1/users\", {
  method: \"GET\",
  headers: headers,   
  body: body
})

How d

7条回答
  •  执笔经年
    2020-12-29 02:11

    My simple function to handle this:

    /**
     * Get query string
     *
     * @param   {*}   query   query object (any object that Object.entries() can handle)
     * @returns {string}      query string
     */
    function querystring(query = {}) {
      // get array of key value pairs ([[k1, v1], [k2, v2]])
      const qs = Object.entries(query)
        // filter pairs with undefined value
        .filter(pair => pair[1] !== undefined)
        // encode keys and values, remove the value if it is null, but leave the key
        .map(pair => pair.filter(i => i !== null).map(encodeURIComponent).join('='))
        .join('&');
    
      return qs && '?' + qs;
    }
    
    querystring({one: '#@$code', two: undefined, three: null, four: 100, 'fi##@ve': 'text'});
    // "?one=%23%40%24code&three&four=100&fi%23%23%40ve=text"
    querystring({});
    // ""
    querystring('one')
    // "?0=o&1=n&2=e"
    querystring(['one', 2, null, undefined]);
    // "?0=one&1=2&2" (edited)
    

提交回复
热议问题