我正在R Shiny中開發一個應用程序,用戶可以在其中輸入或選擇文本,然後用它來填充報告,然後將報告保存爲文檔。文本應該是這樣的:創建者R在testOutput()中使用renderText()時出現閃爍錯誤
%標題% %創2016年9月16日#
我ui.R代碼:
library(shiny)
library(hash)
shinyUI(mainPanel(
textInput("report_author", label="Author")))
server.R代碼:
library(shiny)
source("generate_report.R", local=TRUE)
shinyServer(function(input, output) {
output$final_report <- reactive({
input_report_author <- input$report_author
input_report_year = ' '
input_report_month = ' '
input_report_panel = ' '
renderText({
make_report(
author=input_report_author,
year=input_report_year,
month=input_report_month,
panel=input_report_panel)})})})
和generate_report.R:
make_report <- function(panel, author, year, month, date=defaultDate) {
author = toString(author)
report_text = paste(
"% Title\n",
"% Created by ", author, "\n",
"% Created ", date, "\n\n",
"#", panel, "\n\n",
sep="")
return(report_text)}
返回的文字是不是我的目標爲:!
結構(函數(...){如果(長度(outputArgs)= 0 & & hasExecuted $ get()){,warning(「未使用的參數:outputArgs。 自變量outputArgs僅當將「Shiny」代碼片段嵌入「」,「R Markdown代碼塊(使用 runtime:shiny)時纔會使用」,「。當運行一個「,」完整的Shiny應用程序時,請將 輸出參數直接設置爲「」,「UI代碼的相應輸出函數 」。),hasExecuted $ set(TRUE),},如果 (是。 null(formals(origRenderFunc))),origRenderFunc(),else origRenderFunc(...),},class =「function」,outputFunc = function (outputId,container = if(inline)span else div,inline = FALSE) ,{,容器(ID = outputId的class = 「閃亮的文本輸出」),}, outputArgs =名單(),hasExecuted =)
如果我更換< - input$report_author' with a string,
,我得到的同樣的錯誤,所以故障很可能在o utput$final_report<-reactive({..})
部分代碼。
如果我嘗試沒有reactive({})
包裝運行的應用程序,我得到的input_report_author=input$report_author
代碼段中的錯誤:
在.getReactiveEnvironment()$ currentContext()錯誤:操作不 允許在沒有積極反應上下文。
代碼:
input_report_author = input$report_author
input_report_year = ' '
input_report_month = ' '
input_report_panel = ' '
output$final_report <- renderText({
make_report(author=input_report_author, year=input_report_year,
month=input_report_month, panel=input_report_panel)})
誰能告訴我如何在文字傳遞給一個閃亮的應用程序,並將它返回一個字符串定製?
你應該把''裏面那renderText'是反應式輸入$ report_author'。在這種情況下,您不需要將其放入「反應」功能中。 – Geovany