R无法从条件selectInput获取输入

R无法从条件selectInput获取输入,r,shiny,shinydashboard,R,Shiny,Shinydashboard,在添加条件selectInput之前,我有一个被动语句,当选择一对新语句时,该语句会更新。它按预期工作。现在,我添加了条件selectr,但它似乎从未运行过被动语句(没有控制台打印输出就证明了这一点)。我认为shiny应该在其输入依赖项发生变化时更新被动语句,但这显然不起作用: 用户界面: binancePAIRS在寻求帮助时,您应该包括一个简单的示例输入和所需的输出,用于测试和验证可能的解决方案。确保所有变量都已定义(binancePAIRS不是示例)谢谢,binancePAIRS/bitfi

在添加条件selectInput之前,我有一个被动语句,当选择一对新语句时,该语句会更新。它按预期工作。现在,我添加了条件selectr,但它似乎从未运行过被动语句(没有控制台打印输出就证明了这一点)。我认为shiny应该在其输入依赖项发生变化时更新被动语句,但这显然不起作用:

用户界面:


binancePAIRS在寻求帮助时,您应该包括一个简单的示例输入和所需的输出,用于测试和验证可能的解决方案。确保所有变量都已定义(
binancePAIRS
不是示例)谢谢,binancePAIRS/bitfinexPAIRS是除shinyUI()之外的第一个设置。如果这不适用于
conditionalPanel
(我不知道为什么),您可以使用
renderUI
。我已经尝试了您的代码(逐字)。对我来说这很有效。实际上,控制台中没有打印任何内容;一个可能的原因是,
pairA
pairB
从未被调用。
binancePAIRS <- c('ADABTC', 'BCCBTC', 'BNBBTC', 'BNBUSDT', 'BTCUSDT', 'EOSBTC', 'ETHBTC', 'ETHUSDT', 'ICXBTC', 'IOTABTC', 'LTCBTC', 'NEOBTC', 'OMGBTC', 'ONTBTC', 'TRXBTC', 'VENBTC', 'XLMBTC', 'XMRBTC', 'XRPBTC')
bitfinexPAIRS <- c('BCHUSD', 'BTCUSD', 'EOSUSD', 'ETHUSD', 'LTCUSD')
dashboardSidebar(
      #sliderInput("bins", "Number of Breaks",1,100,50),
      sidebarMenu(
        # menuItem("Dashboard1", tabName='dashboard1', icon=icon('dashboard')),
        selectInput('exchangeAinput' , label='exA', choices=c('binance', 'bitfinex'), selected = 'binance'),
        conditionalPanel(condition = "input.exchangeAinput == 'binance'", selectInput('pairAbinance', label = 'Pair A', choices = binancePAIRS, selected= 'BTCUSDT')),
        conditionalPanel(condition = "input.exchangeAinput == 'bitfinex'", selectInput('pairAbitfinex', label = 'Pair A', choices = bitfinexPAIRS, selected= 'BTCUSD')),

        selectInput('exchangeBinput' , label='exB', choices=c('binance', 'bitfinex'), selected = 'binance'),
        conditionalPanel(condition = "input.exchangeBinput == 'binance'", selectInput('pairBbinance', label = 'Pair B', choices = binancePAIRS, selected= 'BTCUSDT')),
        conditionalPanel(condition = "input.exchangeBinput == 'bitfinex'", selectInput('pairBbitfinex', label = 'Pair B', choices = bitfinexPAIRS, selected= 'BTCUSD'))
      )
      ),
shinyServer(function(input, output){
  pairA <- reactive({
    print('it A')
    if(input$exchangeAinput %in% c('binance')){
    print(input$pairAbinance)
    exA <- 'binance'
    nameA <- input$pairAbinance
    print(exA)
    print(nameA)
    as.data.frame(fread(rawToChar(get_object(paste0("s3://info-datasets/binance-", nameA, "/small", nameA, ".csv")))))
     }else{exA <- 'bitfinex'
       nameA <- input$pairAbitfinex
       print(exA)
       print(nameA)
       as.data.frame(fread(rawToChar(get_object(paste0("s3://info-datasets/bitfinex-", nameA, "/small", nameA, ".csv")))))} 
    })

  pairB <- reactive({
    print('it B')
    if(input$exchangeBinput == 'binance'){
    exB <- 'binance'
    nameB <- input$pairBbinance
    print(exB)
    print(nameB)
    as.data.frame(fread(rawToChar(get_object(paste0("s3://info-datasets/binance-", nameB, "/small", nameB, ".csv")))))
    }else{exB <- 'bitfinex'
      nameB <- input$pairBbitfinex
      print(exB)
      print(nameB)
      as.data.frame(fread(rawToChar(get_object(paste0("s3://info-datasets/bitfinex-", nameB, "/small", nameB, ".csv")))))} })

  nlpA <- reactive({as.data.frame(fread(rawToChar(get_object(paste0("s3://info-datasets/", exA, "-", nameA, "/sync/tracker.csv")))))})
  nlpB <- reactive({as.data.frame(fread(rawToChar(get_object(paste0("s3://info-datasets/", exB, "-", nameB, "/sync/tracker.csv")))))})