提问人:Leo 提问时间:12/5/2022 最后编辑:Stéphane LaurentLeo 更新时间:12/6/2022 访问量:214
NS() 和 ns() 有什么区别 (Rshiny)
What is the difference between NS() and ns() (Rshiny)
答:
2赞
Leo
12/5/2022
#1
在这段代码中,ns 被分配给 NS(id) 现在我可以使用 ns(“Name”)
mod_Navigation_ui <- function(id){
ns <- NS(id)
tagList(
fluidPage(
actionButton(ns("test"), "action"),
)
)}
如果我删除我必须写:ns <- NS(id)
mod_Navigation_ui <- function(id){
tagList(
fluidPage(
actionButton(NS(id,"test"), "action"),
)
)}
2赞
Stéphane Laurent
12/6/2022
#2
闪亮的包装中有功能,但没有功能。NS
ns
这通常在 Shiny 模块的 UI 部分执行,如 @Leo 的回答所示(但您没有义务使用名称)。然后是一个函数:返回字符串 if .正如@Leo所说,你可以等效地做.也就是说,与 .ns <- NS(id)
ns
ns
ns("something")
"moduleId-something"
id = "moduleId"
NS(id, "something")
NS(id)("something")
NS(id, "something")
library(shiny)
id <- "moduleId"
ns <- NS(id)
ns("something")
# "moduleId-something"
NS(id, "something")
# "moduleId-something"
NS(id)("something")
# "moduleId-something"
unusual_name <- NS(id)
unusual_name("something")
# "moduleId-something"
在Shiny模块的服务器部分,您可以使用。对于非嵌套模块,与 相同。也就是说,等价于 .对于嵌套模块,假设父模块未嵌套,则与父模块的模块 ID 相同。因此,在 Shiny 模块的服务器部分,它比 因为会自动处理模块嵌套的情况更好。session$ns
session$ns
NS(id)
ns <- session$ns; ns("something")
NS(id)("something")
ns <- session$ns; ns("something")
NS(parentid)(NS(id)("something"))
parentid
session$ns
NS(id)
session$ns
评论