如何解决为什么我的复选框按钮在shinny应用程序中不响应?
所以我有一个闪亮的应用程序,其中包含一个复选框按钮:
library(bold)
library(stringr)
library(readr)
library(shiny)
library(shinyWidgets)
grades2<-function(groups,inputz,coordz){
taxon<-bold_seqspec(taxon=groups,format = "tsv")
taxon2<-taxon[taxon$species_name!=""|is.na(taxon$species_name),]
taxon2<-taxon2[!(taxon2$bin_uri == "" | is.na(taxon2$bin_uri)),]
taxon2$base_number=str_count(taxon2$nucleotides,pattern="[A-Z]")
taxon2<-taxon2[taxon2$base_number>=inputz,]
if (coordz==TRUE){
taxon2<-taxon2[!(is.na(taxon2$lat)) | taxon2$country!="",]
}else{
taxon2<-taxon2
}
assign('taxon2',taxon2,envir=.GlobalEnv)
}
ui <- navbarPage(title=tags$h3("APP"),tabPanel(column(12,align="center",tags$h4("Download"),tags$br(),sliderInput("seqsize","Mininum number of base pairs for sequences in reference library:",min = 0,max = 1000,value = 500),textOutput("SliderText"),checkboxInput("rmvpaises","Remove records without data on country of origin or latitude",TRUE),textInputAddon(inputId="taxa2",addon=icon("search"),width="500px",label=tags$h5(tags$strong("Enter the name of the taxonomic group or groups separated by commas,without spaces:")),placeholder="Example: Carnivora,Ursidae,Artiodactyla,Soricomorpha"),downloadButton("downloadData_2","Download"))))
server <- function(input,output){
#sliderValues <- reactive({as.integer(input$seqsize)})
#output$values <- renderText({
# sliderValues()
#})
taxaInput_2 <- reactive({grades2(unlist(strsplit(input$taxa2,",")),as.integer(input$seqsize),input$rmvpaises)})
output$downloadData_2 <- downloadHandler(
filename = function() {
paste(input$taxa2,sep_out=",".tsv")
},content = function(file) {
shiny::withProgress(
value=10,{
shiny::incProgress(10/10)
write_tsv(taxaInput_2(),file)
}
)
}
)
output$value <- renderText({ input$rmvpaises })
}
shinyApp(ui=ui,server=server)
由于某些原因,使用该应用程序时,该复选框无响应。它没有改变。 初始功能“ grades2”中使用了复选框的输入,它是“ coordz”自变量。 非常感谢您的回答
解决方法
您缺少title
的非可选参数tabPanel
。因此,它使用column
UI元素作为选项卡的标题,我假设该选项卡正在使用z-index做奇怪的事情。
您需要一个观察者来更新服务器端的checkboxInput。该复选框在此代码中正常工作
grades2<-function(groups,inputz,coordz){
taxon<-bold_seqspec(taxon=groups,format = "tsv")
taxon2<-taxon[taxon$species_name!=""|is.na(taxon$species_name),]
taxon2<-taxon2[!(taxon2$bin_uri == "" | is.na(taxon2$bin_uri)),]
taxon2$base_number=str_count(taxon2$nucleotides,pattern="[A-Z]")
taxon2<-taxon2[taxon2$base_number>=inputz,]
if (coordz) {
taxon2<-taxon2[!(is.na(taxon2$lat)) | taxon2$country!="",]
}else{
taxon2<-taxon2
}
assign('taxon2',taxon2,envir=.GlobalEnv)
}
ui <- navbarPage(title=tags$h3("APP"),tabPanel(value="Panel1",column(12,align="center",tags$h4("Download"),tags$br(),sliderInput("seqsize","Mininum number of base pairs for sequences in reference library:",min = 0,max = 1000,value = 500),textOutput("SliderText"),checkboxInput("rmvpaises","Remove records without data on country of origin or latitude",TRUE),textInputAddon(inputId="taxa2",addon=icon("search"),width="500px",label=tags$h5(tags$strong("Enter the name of the taxonomic group or groups separated by commas,without spaces:")),placeholder="Example: Carnivora,Ursidae,Artiodactyla,Soricomorpha"),downloadButton("downloadData_2","Download"))))
server <- function(input,output,session){
#sliderValues <- reactive({as.integer(input$seqsize)})
#output$values <- renderText({
# sliderValues()
#})
observe({
updateCheckboxInput(session,"rmvpaises",value=input$rmvpaises)
})
taxaInput_2 <- reactive({grades2(unlist(strsplit(input$taxa2,",")),as.integer(input$seqsize),input$rmvpaises)})
output$downloadData_2 <- downloadHandler(
filename = function() {
paste(input$taxa2,sep_out=",".tsv")
},content = function(file) {
shiny::withProgress(
value=10,{
shiny::incProgress(10/10)
write_tsv(taxaInput_2(),file)
}
)
}
)
output$value <- renderText({ input$rmvpaises })
}
shinyApp(ui=ui,server=server)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。