我想使用shiny删除mainPanel上的textOutput。当应用程序启动时,应该有文本,例如“欢迎...”。通过单击操作按钮,将打印一个数据表,并且应删除该文本而不将其写入表格下方。我尝试过这样的事情(见下文),但output$mytable2
不能用作指标(
错误:不允许从shinyoutput对象中读取对象。
)。我没有包含整个代码,因为我认为这可能是非常基本的但我找不到解决方案。 (我还尝试了“removeUI
”从按钮的textOutput()
功能中删除了ui observeEvent
,但这删除了所有内容)
ui : [...]
mainPanel(
DT::dataTableOutput('mytable2'),
textOutput("welcome1")
server: [...]
output$mytable2 <- DT::renderDataTable({
(DT::datatable(datasetInput(),rownames=FALSE))
})
fg<-reactive({text1<-c("Welcome..","")
fg<-2
if (is.null(output$mytable2)){fg=1}
return(text1[fg])})
output$welcome1 <- renderText({ fg() })...
任何简单的想法?如何管理这个示例?非常感谢!
答案 0 :(得分:1)
这个解决方案怎么样:
<强> ui.R 强>
uiOutput("text)
actionButton("button1", "Go")
<强> server.R 强>
output$text <- renderUI({if(input$button1 == 0){paste("Welcome...")} else{return()}})
如果未按下actionButton
,则其值 0 ,按下后,值将更改为 1 。
因此我使用了if...else..
声明,如果按钮的值为 0 ,则显示文字“Welcome ...”,如果它变为 1 ,什么都不回报。