Saya menggunakan R shinyDashboard untuk membuat aplikasi web. Aplikasi ini dimuat dengan mendarat di beberapa tab 'ikhtisar' sebagai aktif. Ada juga beberapa tabItem lainnya. Asumsikan saya memiliki tabItem khusus yang disebut 'Pengaturan', di mana seseorang dapat mengontrol tampilan dan filter, yang ingin saya terapkan dengan nilai default. Ini menggunakan nilai dinamis, sehingga harus ditempatkan di sisi server.

Masalahnya adalah sampai saya tidak mengunjungi tabItem 'Pengaturan', inputnya tidak diinisialisasi dan oleh karena itu tabItem 'Ikhtisar' tidak memiliki data.

Di bawah ini adalah contoh yang sangat sederhana yang dapat direproduksi, di mana aplikasi harus dimuat dengan nilai '10' di kotak teks (sementara dalam praktiknya, itu hanya diisi setelah mengunjungi 'Pengaturan'):

require(shiny)
require(shinydashboard)

ui<-dashboardPage(skin = "black",
    dashboardHeader(
    ),

    dashboardSidebar(
        sidebarMenu(
            menuItem("Overview", tabName = "overview"),
            menuItem("Settings", tabName = "settings")        )
        ),

        dashboardBody(
            tabItems(
                tabItem("overview",
                uiOutput("textUI")
            ),

            tabItem("settings",
                htmlOutput("FilterUI")
            )
        )
    )
)

server<-shinyServer(function(input, output,session) {

    output$FilterUI <- renderUI({
        numericInput("selected_filter", "Select value",min=0,max=20,value=10)
    })

    output$textUI <-renderUI({
        box(input$selected_filter)
    })
})

shinyApp(ui, server)
1
user3096229 20 Oktober 2017, 23:03

1 menjawab

Jawaban Terbaik

Tentukan reactiveValues atau hanya reactive() untuk variabel yang ingin Anda hitung. Tetapkan sebagai default (10). Lihat nilai reaktif tersebut untuk argumen nilai numericInput, dan untuk output$textUI. observeEvent pada numericInput dan perbarui reactiveValues yang sesuai.

0
Alex P 20 Oktober 2017, 23:26
Terima kasih, bekerja dengan sempurna pada contoh. Pindah untuk memasukkannya ke dalam kode lengkap.
 – 
user3096229
20 Oktober 2017, 23:46