如何使submit按钮仅从Shiny(R)中的相应文本输入中获取值
我的闪亮应用程序中有一个文本输入字段。我想在textInput旁边有一个submit按钮(或者Action按钮,可能更有意义?),这样当文本添加到textInput时,用户可以点击按钮,应用程序的唯一反应就是接收该值(而不是加载页面上的任何其他内容),这是如何实现的 如果我使用以下代码,它将加载所有内容如何使submit按钮仅从Shiny(R)中的相应文本输入中获取值,r,shiny,R,Shiny,我的闪亮应用程序中有一个文本输入字段。我想在textInput旁边有一个submit按钮(或者Action按钮,可能更有意义?),这样当文本添加到textInput时,用户可以点击按钮,应用程序的唯一反应就是接收该值(而不是加载页面上的任何其他内容),这是如何实现的 如果我使用以下代码,它将加载所有内容 shinyUI( textInput("variable", "Add Recomendation", ""), submitButton("Add") ) 我认为您需要在服务器中使用一个
shinyUI(
textInput("variable", "Add Recomendation", ""), submitButton("Add")
)
我认为您需要在服务器中使用一个带有观察者的
actionButton()
。还要确保将输入$variable包装在隔离中,这样它就不会导致观察者触发
大概是这样的:
用户界面
服务器.R
library(shiny)
shinyServer(function(input, output) {
values <- reactiveValues(variable = NA)
observe({
if(input$submit > 0) {
values$variable <- isolate(input$variable)
}
})
output$text <- renderText({values$variable})
})
库(闪亮)
shinyServer(功能(输入、输出){
值(0){
值$variable库(闪亮)
#为绘制直方图的应用程序定义UI
ui一种更简单的方法是将提交按钮直接添加到呈现函数中。req(input$submit)
确保呈现函数监听按钮的按下。此外,我们还必须隔离()
input$variable
。否则,渲染功能不仅会在按下按钮时调用,还会在每次input$variable
更改时调用
与以前的解决方案相比有一个区别:虽然反应式表达式/值在更复杂的应用程序中可能会有所帮助,但此处不需要它,可以直接访问input$variable
的值
库(闪亮)
在代码中有注释的UI是很好的。为了使答案高超,可以考虑在代码块之外添加一点解释上下文。有时只有一行或两行文本会走很长的路。
library(shiny)
shinyServer(function(input, output) {
values <- reactiveValues(variable = NA)
observe({
if(input$submit > 0) {
values$variable <- isolate(input$variable)
}
})
output$text <- renderText({values$variable})
})
library(shiny)
# Define UI for application that draws a histogram
ui <- (basicPage(
textInput("variable", "Add Recommendation", ""),
actionButton("submit", "Add"),
textOutput("text")
))
# Define server logic required to draw a histogram
server <- function(input, output) {
name <- reactive({
return(input$variable)
})
observeEvent(input$submit, {
output$text = renderText(name())
})
}
# Run the application
shinyApp(ui = ui, server = server)