Namespaced IDs for inputs/outputs — NS
R/shiny.R
Description
The NS
function creates namespaced IDs out of bare IDs, by joining
them using ns.sep
as the delimiter. It is intended for use in Shiny
modules. See https://shiny.posit.co/articles/modules.html.
Format
An object of class character
of length 1.
Arguments
- namespace
The character vector to use for the namespace. This can have any length, though a single element is most common. Length 0 will cause the
id
to be returned without a namespace, and length 2 will be interpreted as multiple namespaces, in increasing order of specificity (i.e. starting with the top-level namespace).- id
The id string to be namespaced (optional).
Value
If id
is missing, returns a function that expects an id string
as its only argument and returns that id with the namespace prepended.
Details
Shiny applications use IDs to identify inputs and outputs. These IDs must be
unique within an application, as accidentally using the same input/output ID
more than once will result in unexpected behavior. The traditional solution
for preventing name collisions is namespaces; a namespace is to an ID
as a directory is to a file. Use the NS
function to turn a bare ID
into a namespaced one, by combining them with ns.sep
in between.