gpt4 book ai didi

javascript - ConditionalPanel 基于 ShinyTree 选择的值

转载 作者:行者123 更新时间:2023-12-03 06:13:21 24 4
gpt4 key购买 nike

正如我多次在此网站上提示的那样(shinyTree: set variable to value if checkbox is checkedshinyTree: view without selecting),shinyTree 严重缺乏文档。 .

考虑 R 中的以下代码:

library(shiny)
library(shinyTree)
ui <- shinyUI(
shiny::fluidPage(
h4('Shiny hierarchical checkbox'),
shinyTree("tree", checkbox = TRUE),
# slider
sliderInput("slider_input",
"Slider",
min = 0,
max = 100,
value = 0,
step = 0.1,
width = '100%'),
width = 8)
)
server <- shinyServer(function(input, output, session) {
output$tree <- renderTree({
sss=list( 'I lorem impsum'= list(
'I.1 lorem impsum' = structure(list('I.1.1 lorem impsum'='1', 'I.1.2 lorem impsum'='2'),stopened=TRUE),
'I.2 lorem impsum' = structure(list('I.2.1 lorem impsum'='3'), stopened=TRUE)))
attr(sss[[1]],"stopened")=TRUE
sss
})

})
shinyApp(ui, server)

enter image description here

我有兴趣拥有 sliderInput出现当且仅当 I.1.1 lorem impsum在树中被选中。

我知道当使用checkboxGroupInput时s,我可以使用 conditionalPanel javascript condtions in shiny: is there R %in% operator in javascript? 中找到的内容。这一切都很好,但由于缺乏关于 shinyTree 的文档(并且缺乏在该网站上提出的问题)。 ,我不确定如何解决这个问题。 我知道我需要使用 conditionalPanel ,但我不知道如何引用 condition 中的树及其节点函数的参数。更复杂的是,树本身并不在 input 中。 (因为它在声明时没有 input$ ),并且我无法引用 output$据我所知,变量。

我确实知道 condition必须用 JavaScript 编写,但如果我不知道如何引用树及其节点,这是没有用的。

最佳答案

服务器端渲染 slider

library(shiny)
library(shinyTree)
ui <- shinyUI(
shiny::fluidPage(
h4('Shiny hierarchical checkbox'),
shinyTree("tree", checkbox = TRUE),
# slider
uiOutput("slider_ui"),

width = 8)
)
server <- shinyServer(function(input, output, session) {
output$tree <- renderTree({
sss=list( 'I lorem impsum'= list(
'I.1 lorem impsum' = structure(list('I.1.1 lorem impsum'='1', 'I.1.2 lorem impsum'='2'),stopened=TRUE),
'I.2 lorem impsum' = structure(list('I.2.1 lorem impsum'='3'), stopened=TRUE)))
attr(sss[[1]],"stopened")=TRUE
sss
})
output$slider_ui=renderUI({
if('I.1.1 lorem impsum' %in% get_selected(input$tree)){
sliderInput("slider_input",
"Slider",
min = 0,
max = 100,
value = 0,
step = 0.1,
width = '100%')
}
})


})
shinyApp(ui, server)

shinyjs 变体

library(shiny)
library(shinyTree)
library(shinyjs)
ui <- shinyUI(
shiny::fluidPage(
useShinyjs(),
h4('Shiny hierarchical checkbox'),
shinyTree("tree", checkbox = TRUE),
# slider
sliderInput("slider_input",
"Slider",
min = 0,
max = 100,
value = 0,
step = 0.1,
width = '100%'),

width = 8)
)
server <- shinyServer(function(input, output, session) {
output$tree <- renderTree({
sss=list( 'I lorem impsum'= list(
'I.1 lorem impsum' = structure(list('I.1.1 lorem impsum'='1', 'I.1.2 lorem impsum'='2'),stopened=TRUE),
'I.2 lorem impsum' = structure(list('I.2.1 lorem impsum'='3'), stopened=TRUE)))
attr(sss[[1]],"stopened")=TRUE
sss
})
observe({
if('I.1.1 lorem impsum' %in% get_selected(input$tree)){
show("slider_input")
}else{
hide("slider_input")
}
})

})



shinyApp(ui, server)

关于javascript - ConditionalPanel 基于 ShinyTree 选择的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39226734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com