gpt4 book ai didi

r - 禁用以另一个 Shiny 输入为条件的 Shiny 输入

转载 作者:行者123 更新时间:2023-12-04 00:32:38 25 4
gpt4 key购买 nike

我正在尝试禁用一个 Shiny-input,它的值取决于另一个 Shiny-input。以前我查看了 shinyjs 中的 disable() 函数,但是在我的例子中,它似乎无法禁用这种 Shiny-input。下面是我的例子:

library(shiny)
library(shinyjs)
runApp(shinyApp(
ui = fluidPage(
useShinyjs(),
sliderInput(inputId = "First", label = "First",
min = 10, max = 100, value = 40, step = 1),

uiOutput("Second_UI")
),
server = function(input, output, session) {
output$Second_UI = renderUI({
sliderInput(inputId = "Second", label = "Second",
min = 0, max = input$First, value = 5)
})

disable("Second_UI")

}
))

基本上,我想要的是 - 我的第二个 sliderInputSecond 仍然会响应地从 First 中获取值,但是用户不应该能够控制它。

任何指针将不胜感激。

谢谢,

最佳答案

@Florian 的回答是正确的(感谢您使用我的 shinyjs 包!)。

但是,我想为您的原始代码提供一个替代实现,它可能更简洁、更容易一些。

不是将 slider 创建为 renderUI,因为唯一改变的是最大值,您可以使用 updateSliderInput() 函数每次只更改最大值。这样元素本身只创建一次,使用起来更快更容易。

library(shiny)
library(shinyjs)
runApp(shinyApp(
ui = fluidPage(
useShinyjs(),
sliderInput(inputId = "First", label = "First",
min = 10, max = 100, value = 40, step = 1),
sliderInput(inputId = "Second", label = "Second",
min = 0, max = 40, value = 5)
),
server = function(input, output, session) {
observe({
updateSliderInput(session, "Second", max = input$First)
})

disable("Second")

}
))

关于r - 禁用以另一个 Shiny 输入为条件的 Shiny 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48726272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com