需要为来自RShiny中Excel工作表的3个InsertUI字段建立依赖关系

问题描述 投票:0回答:1

我对R来说还很陌生,他正试图为我的学习构建一个小型实用程序。

我的excel工作簿中有3个字段,名称为:

国家州城市

所有这些字段都应作为UI的下拉列表。

[我想要实现的是:'当我选择国家/地区时,应该为国家/地区创建一个新的下拉列表,其中包含所选择国家/地区下的国家/地区列表。并根据所选择的州,在下拉菜单中填充基础城市”

我在网上找到了一些示例,但是他们都在创建一个带有3个固定下拉菜单的静态UI。如何动态实施?

下面的代码可以帮助我部分实现目标,例如:如果我选择一个国家作为'印度',它会添加另一个下拉列表,并根据使用的过滤器正确列出所有州。但是,一旦填充了州,即使我更改“国家/地区”的选定值,它们也不会更改。

有人可以帮我解决这个问题吗?

insertUI(selector = "#message", where = "beforeBegin",
                      ui=div(class="chat-bubbles",
                             div(class="bubble",
                                 wellPanel(
                                   p( selectInput("Country", "Countries", choices =c("All",unique(as.character(a1$`Country`) )), multiple = T) )))))


    observeEvent(input$Country,{
      insertUI(selector = "#message", where = "beforeBegin",
               ui=div(class="chat-bubbles",
                      div(class="bubble",
                          wellPanel(
                            p(
                              selectInput("state", "States", choices =c(unique(as.character(a1$State))[a1$`Country`== input$Country])) )
                          ))))

    })  
shiny shiny-server shiny-reactivity shinyjs
1个回答
0
投票

在服务器功能中,为您的国家observeEvent添加一个selectInput侦听器。在其中,使用updateSelectInput重新填充您的状态selectInput。同样,为您的州observeEvent编写一个selectInput侦听器以更新您的城市selectInput

除非重要的是要在选择一个国家之前不显示状态selectInput(在选择了一个州之前不要显示城市selectInput,否则,您应该能够执行所有这些操作而无需使用insertUIrenderUI。在updateSelectInput上搜索帮助。在线上有很多示例。

无法为您提供解决方案,因为您还没有给我们提供有关问题的简单,独立的示例。这将包括玩具输入数据,您的代码,任何错误消息以及预期的输出。 This post可能会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.