我正在构建一个有光泽的应用程序,它有两个类。 A类,类别为a1,b1 ...,B类,类别为a2,b2 ...
我有一个带有“ Class A”和“ Class B”的单选按钮,并且根据选择,我想更新我的用户Input:
library(collapsibleTree)
library(shiny)
library(Cairo)
library(rsconnect)
shinyUI(fluidPage(
titlePanel("dsfs", align="center")),
sidebarLayout(
sidebarPanel(
#update selectInput based on it :
radioButtons(inputId = "buttons", "Selections", c("class A", "Class
B"),
selected = "Class A", inline = TRUE),
selectInput( "selection","Select a Category ",choices =
"",selected="")
),mainPanel(
diagonalNetworkOutput ("collapsiblenetwork")
)
))
)
server.r
shinyServer(
function(session,input,output){
output$collapsiblenetwork<-renderDiagonalNetwork({
if(input$buttons=="Class A"){
observeEvent(
input$selection,updateSelectInput(session,"selection","Select a
category ",choices = levels(class A$categories))
)
user_input_value_superclass<-input$selection
print(user_input_value_superclass)
# detection rate function :produces a dataframe
classA_detect<-
detecttion_rates(user_input_class_subclass_superclass =
user_input_value_superclass,user_input_shiny_header ="Class A" )
ClassA_superclass<-as.Node(ClassA_detect)
useRtreeList <- ToListExplicit(ClassA_superclass, unname = TRUE)
network_plot<-diagonalNetwork( useRtreeList)
}else if(input$buttons=="Class B") {
observeEvent(
input$selection,updateSelectInput(session,"selection","Select a
category ",choices = levels(classB$categories))
)
user_input_value_subclass<-input$selection
ClassB_detect<-detecttion_rates(user_input_class_subclass_superclass
= user_input_value_subclass,user_input_shiny_header = "Class B")
ClassB_subclass<-as.Node(ClassB_detect)
useRtreeList <- ToListExplicit(ClassB_subclass, unname = TRUE)
diagonalNetwork( useRtreeList)
}
})
})
代码产生,单选按钮和选择输入也相应地发生,但是,一旦我选择了除默认输入值之外的其他输入,对于该类,新选择的图就会在瞬间绘制出来,并自动呈现到原始图(即默认选择)。 其他一切工作正常。 我在更新选择输入后尝试打印输入,它会产生一个空字符串“”。 很抱歉,冗长的脚本。 谢谢!