【问题标题】:Error - argument "inputId" is missing, with no default错误 - 缺少参数“inputId”,没有默认值
【发布时间】:2017-06-05 21:22:45
【问题描述】:

尝试获取数字输入并在输入上应用 2 个公式并使用它们绘制直方图。

UI端

library(shiny)

shinyUI(fluidPage(
  actionButton (InputId = "USD", label = "US Bond Return"),
  actionButton (InputId = "INR", label = "Indian Bond Return"),
  numericInput(InputId = "num", label = "USD given by Investor", value = 0, 
min = 1, max = 1000, step = NA, width = NULL), plotOutput("hist")))

服务器端

library(shiny)

shinyServer(function(input, output) {

rv = reactiveValues(data = input$num)
observeEvent(input$USD, { rv$data <- (input$num * 0.0225) })
observeEvent(input$INR, { rv$data <- (input$num*0.1) })

output$curve <- renderPlot({
hist(rv$data)
})
}
)

【问题讨论】:

    标签: r shiny shiny-server


    【解决方案1】:

    你的用户界面有问题。不是InputId,是inputId(注意小i)。

    因此你的用户界面代码如下:

    shinyUI(fluidPage(
        actionButton (inputId = "USD", label = "US Bond Return"),
        actionButton (inputId = "INR", label = "Indian Bond Return"),
        numericInput(inputId = "num", label = "USD given by Investor", value = 0, 
                     min = 1, max = 1000, step = NA, width = NULL), plotOutput("hist")))
    

    【讨论】:

    • 谢谢!该错误现已解决,但现在它引发了其他错误:- .getReactiveEnvironment()$currentContext() 中的错误:没有活动的反应上下文不允许操作。 (你试图做一些只能从反应式表达式或观察者内部完成的事情。)
    • 该错误是因为 rv = reactiveValues(data = input$num) 。你为什么不试试rv = reactiveValues(data = input$num)。
    • 另外,您试图实现的目标无法从您的代码中实现,因为在您单击应用程序初始运行后执行的按钮时会调用 observeEvent。您的 renderPlot({ hist(rv$data)}) 在应用程序的初始运行期间运行,并且永远不会再次被调用。考虑参考this 以了解闪亮应用程序的工作原理。此外,Shiny App Tutorial 是您学习的好地方。
    猜你喜欢
    • 2016-06-08
    • 2017-12-09
    • 2020-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-29
    • 1970-01-01
    相关资源
    最近更新 更多