Mam aplikację z dużą liczbą parametrów. Każdy parametr ma dużą ziarnistość, która sprawia, że znalezienie pożądanego jest uciążliwe. To powoduje, że część reaktywna stale oblicza, co spowalnia działanie. Dodałem metodę submitButton, która rozwiązała powyższy problem, ale potem pojawia się kolejny problem.Błyszcząca reaktywność
Poniżej znajduje się prosta replikacja budowanej przeze mnie struktury. Wprowadzanie parametru przyjmuje liczbę od 1 do 1000, która wskazuje próbkę, której chcę. To, co chciałbym zrobić, to móc zrobić powyżej, ale także móc ponownie próbkować z tym samym zestawem parametrów. To, co dzieje się teraz po dodaniu przycisku "Wyślij", powoduje, że przycisk ponownego próbkowania jest niedziałający, chyba że kliknę przycisk ponownie przeprowadź próbę, a następnie przycisk aktualizacji.
Jakieś pomysły na to, że będą działać osobno?
shinyServer(function(input, output) {
getY<-reactive({
a<-input$goButton
x<-rnorm(input$num)
return(x)
})
output$temp <-renderPlot({
plot(getY())
}, height = 400, width = 400)
})
shinyUI(pageWithSidebar(
headerPanel("Example"),
sidebarPanel(
sliderInput("num",
"Number of Samples",
min = 2,
max = 1000,
value = 100),
actionButton("goButton", "Resample"),
submitButton("Update View")
),
mainPanel(
tabsetPanel(
tabPanel("Heatmap",
plotOutput("temp")
),
tabPanel("About"),
id="tabs"
)#tabsetPanel
)#mainPane;
))
EDIT na podstawie Joe odpowiedź:
shinyServer(function(input, output) {
getY<-reactive({
isolate({a<-input$goButton
x<-rnorm(input$num)
return(x)})
})
output$temp <-renderPlot({
b<-input$goButton1
plot(getY())
}, height = 400, width = 400)
})
shinyUI(pageWithSidebar(
headerPanel("Example"),
sidebarPanel(
sliderInput("num",
"Number of Samples",
min = 2,
max = 1000,
value = 100),
actionButton("goButton", "Resample"),
actionButton("goButton1","Update View")
),
mainPanel(
tabsetPanel(
tabPanel("Heatmap",
plotOutput("temp")
),
tabPanel("About"),
id="tabs"
)#tabsetPanel
)#mainPane;
))
Masz niezwykły sposób pisania kodu. Tony białej przestrzeni * między * liniami, ale praktycznie * brak * wokół głównych operatorów ... –
Przepraszam, będę edytować kod następnym razem przed wysłaniem, spieszyłem się z kopiowania i wklejania ... – user1234440