Parlak birden fazla eylem düğmesi kullanarak sorun yaşıyorum. Metnin eklenebileceği bir textarea yapıyorum. Bu metin, üç dizenin sonuçta olduğu şekilde işlenir. Bu üç dize daha sonra üç eylem düğmesinin etiketini yapılır. Düğmelerden biri tıklandığında, giriş metnini manipüle etmelidir.Eylem düğmesi sıfırlama gerekli (veya alternatif)
İşlem düğmesini tıklattığımda, metin doğru bir şekilde işlenir, ancak eylem süresiz olarak yinelenir. Bunun nedeni, eylem düğmesinin sıfırlanamamasıdır. Bu sorunla uğraşan çok sayıda web sayfası buldum ve çok sayıda çözüm ve çözüm denedim, ancak hiçbir işe yaramadı. Sorun observeEvent
kullanmak renderUI
bir bağımlılık olması
server.R
library(shiny)
library(stringi)
new_word_f <- function(x) {
x <- substr(x, nchar(x), nchar(x)) == " "
}
modify_text_input <- function(new_word, input_text, word_to_remove, answer) {
if (new_word == TRUE) {
paste(input_text, answer, " ")
} else {
paste(stri_replace_last_regex(input_text, word_to_remove, answer), " ")
}
}
start_input_text <- "Testing the lines "
ngram_input <- "lines"
answer <- c("a", "b", "c")
## Start shiny app
shinyServer(function(input, output) {
## New word or current mid-word
new_word <- reactive({new_word_f(input$text_in)})
output$input_textarea <- renderUI({tags$textarea(id="text_in", rows=3, cols=40, start_input_text)})
output$text1 <- renderText({input$text_in})
output$text2 <- renderText({new_word()})
output$but1 <- renderUI({actionButton("action1", label = answer[1])})
output$but2 <- renderUI({actionButton("action2", label = answer[2])})
output$but3 <- renderUI({actionButton("action3", label = answer[3])})
## On button press
observeEvent(input$action1, {output$input_textarea <- renderUI({tags$textarea(id="text_in", rows=3, cols=40, modify_text_input(new_word(), input$text_in, ngram_input, answer[1]))})})
observeEvent(input$action2, {output$input_textarea <- renderUI({tags$textarea(id="text_in", rows=3, cols=40, modify_text_input(new_word(), input$text_in, ngram_input, answer[2]))})})
observeEvent(input$action3, {output$input_textarea <- renderUI({tags$textarea(id="text_in", rows=3, cols=40, modify_text_input(new_word(), input$text_in, ngram_input, answer[3]))})})
})
ui.R
library(shiny)
library(stringi)
shinyUI(
fluidPage(
titlePanel("Word prediction"),
sidebarLayout(
sidebarPanel(
uiOutput("input_textarea"),
uiOutput("but1"),
uiOutput("but2"),
uiOutput("but3")
),
mainPanel(
textOutput("text1"),
textOutput("text2")
)
)
)
)
! İzolatı 10000 farklı şekilde uyguladım, ama bu şekilde değil .. Teşekkürler! – Maarten