我有闪亮的应用程序的简单示例。在这里,我正在测试其他元素对特定元素变化的反应。
ui.r
library(shiny)
shinyUI(fluidPage(
titlePanel("SCORE CARD DEVELOPMENT PLATFORM"),
navbarPage("ScoreDevApp",
tabPanel("Settings",
fluidRow(column(2,
actionButton("goButton_service", "Load saved parameters",width=200)
,radioButtons("DB_switch"
, "Select Data Source"
,c("Oracle"=1,"text file"=2)
)
)
)
),
tabPanel("Download & Binning input data",
fluidRow(column(2,
textInput("text","test")))),
id="ScoreDevApp"
)
)
)
server.r
library(shiny)
library(shinyjs)
shinyServer(function(input, output, session) {
observeEvent(input$goButton_service, {
updateRadioButtons(session
, "DB_switch"
, "Select Data Source"
,c("Oracle"=1,"text file"=2)
, selected = 2
, inline = FALSE
)
if(input$DB_switch==2){
updateTextInput(session,text,"test",value="testing")
}
})
})
按下按钮' goButton_service'导致radiobutton' DB_switch'的更新 - >所选项目为2而不是1(默认情况下)。多数民众赞成完成。
然后我要检查radiobutton的值:如果它是2那么字符串"测试"应该已经传递给textInput' text'在tabpanel'下载&分箱输入数据'。但是没有执行。需要帮助。
答案 0 :(得分:1)
尝试下面的版本(我删除了启用/禁用代码,它没有任何功能)。您的主要错误是text
周围缺少引号。
library(shiny)
library(shinyjs)
shinyServer(function(input, output, session) {
observe({
if (input$DB_switch == "2") {
updateTextInput(session, "text", value = "testing")
}
}
)
observeEvent(input$goButton_service, {
updateRadioButtons(session
, "DB_switch"
, "Select Data Source"
,c("Oracle"=1,"text file"=2)
, selected = 2
, inline = FALSE
)
})
})
答案 1 :(得分:0)
如果您更新textInput
两次,如下例所示,它应该可以解决您的问题
shinyServer(function(input, output, session) {
observeEvent(input$goButton_service, {
updateRadioButtons(session, "goButton_service", selected = 2)
updateTextInput(session, "text", "test", value = "testing")
})
observe({
if (input$DB_switch == 2)
updateTextInput(session, "text", "test", value = "testing")
})
})