R 闪亮:逐字读取输出的文本内容
是否可以将闪亮应用程序中R 闪亮:逐字读取输出的文本内容,r,shiny,R,Shiny,是否可以将闪亮应用程序中逐字输出元素的文本内容作为变量读取 下面的想法是,当用户单击button1时,text2的内容会更新,并显示text1中的内容(“本例中为“Hello world”) 下面的observeEvent处理程序生成此错误:警告:$.shinyoutput中出错:不允许从shinyoutput对象读取对象。但在我看来,这是我设法找到的最接近解决方案 任何帮助都将不胜感激 谢谢 雨果 库(闪亮) shinyApp( ui=基本页面(逐字输出(“文本1”), 操作按钮(“按钮1”,
逐字输出元素的文本内容作为变量读取
下面的想法是,当用户单击button1
时,text2
的内容会更新,并显示text1
中的内容(“本例中为“Hello world”)
下面的observeEvent
处理程序生成此错误:警告:$.shinyoutput中出错:不允许从shinyoutput对象读取对象。
但在我看来,这是我设法找到的最接近解决方案
任何帮助都将不胜感激
谢谢
雨果
库(闪亮)
shinyApp(
ui=基本页面(逐字输出(“文本1”),
操作按钮(“按钮1”,“读取并复制文本!”),
逐字输出(“文本2”),
服务器=功能(输入、输出、会话){
output$text1您可以将text1
对象的输出存储到一个变量并传递该变量。我建议您使用session$userData
对象,因为它是会话的一部分,您不必全局声明变量。下面是代码
library(shiny)
shinyApp(
ui = basicPage(verbatimTextOutput("text1"),
actionButton("button1", "Read & copy text!"),
verbatimTextOutput("text2")),
server = function(input, output, session) {
output$text1 <- renderText({
session$userData$text1 <- "Hello world"
session$userData$text1})
output$text2 <- renderText("Waiting for new text...")
observeEvent(input$button1, {
output$text2 <- renderText(session$userData$text1)
})
}
)
库(闪亮)
shinyApp(
ui=基本页面(逐字输出(“文本1”),
操作按钮(“按钮1”,“读取并复制文本!”),
逐字输出(“文本2”),
服务器=功能(输入、输出、会话){
输出$text1库(闪亮)
shinyApp(
ui=basicPage(textInput(“text1”、“text1”、“placeholder=”Hello World”),
操作按钮(“按钮1”,“读取并复制文本!”),
逐字输出(“文本2”),
服务器=功能(输入、输出、会话){
text2使用shinyjs
如果您想读取任何带有id的标记上的文本并将其保存在输入中。您可以使用包装和一些js代码来读取文本,然后使用shinny.onInputChange()
来创建输入。下面的代码解决了您的问题
library(shiny)
library(shinyjs)
shinyApp(
ui = basicPage(useShinyjs(),verbatimTextOutput("text1"),
actionButton("button1", "Read & copy text!"),
verbatimTextOutput("text2")),
server = function(input, output, session) {
output$text1 <- renderText("Hello world")
output$text2 <- renderText("Waiting for new text...")
observeEvent(input$button1, {
runjs("var textin1=$('#text1').text();
Shiny.onInputChange('textin1', textin1);
")
output$text2 <- renderText({input$textin1})
})
}
)
库(闪亮)
图书馆(shinyjs)
shinyApp(
ui=basicPage(useShinyjs(),逐字输出(“text1”),
操作按钮(“按钮1”,“读取并复制文本!”),
逐字输出(“文本2”),
服务器=功能(输入、输出、会话){
输出$text1谢谢Andryas!我很感激这两个建议。谢谢你,迪内什。这正是我想要的。
library(shiny)
shinyApp(
ui = basicPage(textInput("text1","","",placeholder = "Hello World"),
actionButton("button1", "Read & copy text!"),
verbatimTextOutput("text2")),
server = function(input, output, session) {
text2 <- eventReactive(input$button1,{
input$text1
})
output$text2 <- renderText({
validate(
need(input$button1,"Waiting for new text....")
)
text2()
}
)
}
)
library(shiny)
shinyApp(
ui = basicPage(verbatimTextOutput("text1"),
actionButton("button1", "Read & copy text!"),
verbatimTextOutput("text2")),
server = function(input, output, session) {
output$text1 <- renderText("Hello world")
output$text2 <- renderText({
validate(
need(input$button1,"Waiting for new text...")
)
"Hello world"
})
}
)
library(shiny)
library(shinyjs)
shinyApp(
ui = basicPage(useShinyjs(),verbatimTextOutput("text1"),
actionButton("button1", "Read & copy text!"),
verbatimTextOutput("text2")),
server = function(input, output, session) {
output$text1 <- renderText("Hello world")
output$text2 <- renderText("Waiting for new text...")
observeEvent(input$button1, {
runjs("var textin1=$('#text1').text();
Shiny.onInputChange('textin1', textin1);
")
output$text2 <- renderText({input$textin1})
})
}
)