2016-06-21 93 views
2

我正在編程一個更大的閃亮界面,ui.r mainPanel包含一個帶有多個tabPanel的tabsetPanel,並且位於每種不同類型的表格和繪圖輸出中。除了需要滾動的頁面傾向於在他們的滾動位置上跳轉時,例如(重新)選擇繪圖輸出,表格條目等,跳轉有時看起來很棒。有時跳轉到頁面的開始處,有時跳到其他地方;它們都出現在Firefox和Chrome中。因此,有沒有辦法來防止或抑制這種跳躍?非常感謝您的幫助。滾動後閃亮的頁面跳轉

下面是一個小例子,其中用戶界面跳轉到頁面頂部的選擇表中的行頁面的底部形成之後:

library(shiny) 
library(DT) 
data=data.frame(x=1:10,y=2:11) 

ui=shinyUI(
    fluidPage(
    plotOutput("plot1"), 
    plotOutput("plot2"), 
    DT::dataTableOutput("tt") 
) 
) 

server=shinyServer(function(input, output) { 
    dd=reactiveValues(d=data) 
    output$plot1 <- renderPlot({plot(0,1)}) 
    output$plot2 <- renderPlot({plot(0,1)}) 
    output$tt=DT::renderDataTable(
    datatable(
     dd$d,selection =c('single') 
    ) 
) 
    observeEvent(input$tt_rows_selected,{ 
    dd$d[input$tt_rows_selected,1]<-log(dd$d[input$tt_rows_selected,1]) 
    }) 
}) 

shinyApp(ui,server) 
+0

您能否包含一些示例代碼?我不是很瞭解你的問題,並提供一個[可重現的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)將是非常有益的。 –

+1

當然,在上面補充說。 – martin

回答

0
library(shiny) 
library(DT) 
data=data.frame(x=1:10,y=2:11) 

ui=shinyUI(
    fluidPage(
    plotOutput("plot1"), 
    plotOutput("plot2"), 
    DT::dataTableOutput("tt") 
) 
) 

server=shinyServer(function(input, output) { 
    dd=reactiveValues(d=data) 
    output$plot1 <- renderPlot({plot(0,1)}) 
    output$plot2 <- renderPlot({plot(0,1)}) 
    output$tt=DT::renderDataTable(
    datatable(
     data,selection ='single' 
    ) 
) 
    observeEvent(input$tt_rows_selected,{ 
    dd$d[input$tt_rows_selected,1]<-log(dd$d[input$tt_rows_selected,1]) 
    }) 
}) 

shinyApp(ui,server) 

這適用於我。問題是selection = c('single')。它應該是selection = 'single'。在DT::datatable的文檔中,您可以傳遞給selection的參數包含在c()中,僅用於指示所有選項。

+1

謝謝。但是沒有 - 這不起作用;在你的例子中,你用數據替換了renderDataTable中的dd $ d。這使得_rows_selected的observeEvent已過時。沒有響應行選擇,沒有跳躍 - 以任何方式「單一」可能被定義。也許你可以考慮從這篇文章中刪除你的例子嗎? – martin