Please use createRenderFunction()
to
support async execution. (Shiny 1.1.0)
markRenderFunction(
uiFunc,
renderFunc,
outputArgs = list(),
cacheHint = "auto",
cacheWriteHook = NULL,
cacheReadHook = NULL
)
A function that renders Shiny UI. Must take a single argument: an output ID.
A function that is suitable for assigning to a Shiny output slot.
A list of arguments to pass to the uiFunc
. Render
functions should include outputArgs = list()
in their own parameter list,
and pass through the value to markRenderFunction
, to allow app authors to
customize outputs. (Currently, this is only supported for dynamically
generated UIs, such as those created by Shiny code snippets embedded in R
Markdown documents).
One of "auto"
, FALSE
, or some other information to
identify this instance for caching using bindCache()
. If "auto"
, it
will try to automatically infer caching information. If FALSE
, do not
allow caching for the object. Some render functions (such as renderPlot)
contain internal state that makes them unsuitable for caching.
Used if the render function is passed to bindCache()
.
This is an optional callback function to invoke before saving the value
from the render function to the cache. This function must accept one
argument, the value returned from renderFunc
, and should return the value
to store in the cache.
Used if the render function is passed to bindCache()
.
This is an optional callback function to invoke after reading a value from
the cache (if there is a cache hit). The function will be passed one
argument, the value retrieved from the cache. This can be useful when some
side effect needs to occur for a render function to behave correctly. For
example, some render functions call createWebDependency()
so that Shiny
is able to serve JS and CSS resources.
The renderFunc
function, with annotations.
Should be called by implementers of renderXXX
functions in order to mark
their return values as Shiny render functions, and to provide a hint to Shiny
regarding what UI function is most commonly used with this type of render
function. This can be used in R Markdown documents to create complete output
widgets out of just the render function.
Note that it is generally preferable to use createRenderFunction()
instead
of markRenderFunction()
. It essentially wraps up the user-provided
expression in the transform
function passed to it, then passes the resulting
function to markRenderFunction()
. It also provides a simpler calling
interface. There may be cases where markRenderFunction()
must be used instead of
createRenderFunction()
– for example, when the transform
parameter of
createRenderFunction()
is not flexible enough for your needs.