ShinyUI 要素に対して無効化/有効化機能を実装する方法を探しています。ここで xiaodaighは、an を無効/有効にする方法のヒントを提供しますactionButton
(下の画像を参照numericInput
)。
(私はconditionalPanel
機能を知っていますが、これは私が望む効果ではありません。)
特に私はあまり詳しくないので、何か提案をいただければ幸いですJavaScript
。
質問でリンクしているコードが他の入力ウィジェットで機能しない理由は、入力ウィジェットが異なれば、無効にするために異なる JavaScript 呼び出しが必要になるためです。もう 1 つの問題は、shiny が入力要素を作成するときに、指定した ID が実際の HTML 入力タグの ID である場合があり、その ID が入力タグのコンテナーに与えられる場合があることです。
Shinyjsパッケージには、任意の光沢のある入力でそのまま機能する機能disable
があります。免責事項: 私はそのパッケージを書きました。
numericInput
あなたが尋ねたように無効にする方法は次のとおりです
library(shiny)
runApp(shinyApp(
ui = fluidPage(
shinyjs::useShinyjs(),
numericInput("test", "Test", 5),
actionButton("submit", "Choose")
),
server = function(input, output, session) {
observeEvent(input$submit, {
shinyjs::disable("test")
})
}
))
特定の条件が FALSE のときに要素が「消える」場合はどうでしょうか。
これがあなたの意図である場合は、これをサーバーに追加できます.R
output$sliderInputUI <- renderUI({
if (condition == TRUE) {
sliderInput("id", "text",
min = 1, max = 8,
value = 1, step = 1
)
}
})
これを ui.R htmlOutput("sliderInputUI") に追加します
sliderInput
条件がTRUEの場合にのみUIに表示されます。