R 禁用以另一个闪亮输入为条件的闪亮输入
我试图禁用一个R 禁用以另一个闪亮输入为条件的闪亮输入,r,shiny,shinyjs,R,Shiny,Shinyjs,我试图禁用一个闪亮输入,其值取决于另一个闪亮输入。之前,我查看了shinyjs中的disable()函数,但是在我的例子中,它似乎无法禁用这种闪亮的输入。以下是我的例子: library(shiny) library(shinyjs) runApp(shinyApp( ui = fluidPage( useShinyjs(), sliderInput(inputId = "First", label = "First", min =
闪亮输入
,其值取决于另一个闪亮输入
。之前,我查看了shinyjs
中的disable()
函数,但是在我的例子中,它似乎无法禁用这种闪亮的输入。以下是我的例子:
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")
}
))
基本上,我想要的是-我的第二个幻灯片输入
,即第二个
仍将响应地从第一个
获取值,但用户应该无法控制它
任何指针都将受到高度赞赏
谢谢,这不起作用的原因是您多次渲染该元素,但在脚本中仅禁用一次—在元素实际渲染之前 然而,我们实际上可以很简单地解决这个问题
Shinyjs
提供了一个disabled
函数,允许您将输入初始化为disabled。下面给出了一个工作示例
希望这有帮助
@Florian的回答是正确的(感谢您使用我的shinyjs软件包!) 然而,我想为您的原始代码提供一个更干净、更简单的替代实现 由于唯一需要更改的是最大值,因此可以使用
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")
}
))
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")
}
))