Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 闪亮:逐字读取输出的文本内容_R_Shiny - Fatal编程技术网

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})
    })
  }
)