addQueryParameter method

Uri addQueryParameter(
  1. String key,
  2. String? value
)

Adds or updates a query parameter in this URI.

If value is null or empty, the parameter is removed instead.

Args:

  • key: The query parameter key.
  • value: The query parameter value. If null/empty, removes the parameter.

Returns: A new URI with the updated query parameters.

Example:

Uri.parse('https://example.com').addQueryParameter('page', '1');
// Returns: https://example.com?page=1
Uri.parse('https://example.com?a=1').addQueryParameter('b', '2');
// Returns: https://example.com?a=1&b=2

Implementation

Uri addQueryParameter(String key, String? value) {
  if (key.isEmpty) return this;
  final Map<String, dynamic> params = Map<String, dynamic>.from(queryParameters);
  if (value == null || value.isEmpty) {
    params.remove(key);
  } else {
    params[key] = value;
  }
  return replace(queryParameters: params);
}