modalDialog 팝업을 사용하여 github api에 문제를 기록 할 수 있습니다. 그러나 actionButton("ok", "Submit new issue")
모듈화 된 서버 측 코드에 있기 때문에 이름 간격이 없기 때문에 버튼이 작동하지 않는다고 생각합니다. 버튼을 눌렀을 때 제목을 표시해야하는 테스트 코드를 아래에 제공했지만 아무 작업도 수행하지 않습니다.
주위에 방법이 있습니까?
library(shiny)
editTableUI <- function(id){
ns<-NS(id)
tagList(
actionButton(ns("add_issue"), "New Issue"),
textOutput("text"))
}
editTable <-function(input, output, session){
observeEvent(input$add_issue, {
loginModal <- function() {
modalDialog(
title = "Create Issue",
textInput("title", "Title"),
textAreaInput("body", "Body", placeholder = "Leave a comment", width = '100%', height = '300px' ),
selectInput("asignee",label= "Assignees", selected = NULL, choices = c("a","b","c","d"), multiple = T ),
footer = tagList(
modalButton("Cancel"),
actionButton("ok", "Submit new issue")),
fade = T,
size = c("s")
)
}
showModal(loginModal())
})
observeEvent(input$ok, {
output$text <- renderText({ input$title })})
}
ui <- fluidPage(
editTableUI("tab2"))
server <- function(input, output, session) {
callModule(editTable, "tab2")}
shinyApp(ui, server)
이제 의미하는 바를 알 수 있습니다. 모듈로 작업하고 모듈 내부에 객체를 만들 때 네임 스페이스를 할당해야합니다. 예를 들어 session$ns("ok")
다음과 같이 액세스 할 수 있습니다 session$input$ok
. title
입력 한 것과 비슷합니다. 아래 코드는 당신을 위해 일하십시오 ...
library(shiny)
editTableUI <- function(id){
ns <- NS(id)
tagList(
actionButton(ns("add_issue"), "New Issue"),
textOutput(ns("text"))
)
}
editTable <-function(input, output, session){
observeEvent(input$add_issue, {
loginModal <- function() {
modalDialog(
title = "Create Issue",
textInput(session$ns("title"), "Title"),
textAreaInput("body", "Body", placeholder = "Leave a comment", width = '100%', height = '300px' ),
selectInput("asignee",label= "Assignees", selected = NULL, choices = c("a","b","c","d"), multiple = T ),
footer = tagList(
modalButton("Cancel"),
actionButton(session$ns("ok"), "Submit new issue")),
fade = T,
size = c("s")
)
}
showModal(loginModal())
})
observeEvent(session$input$ok, {
output$text <- renderText({
input$title
})
})
}
ui <- fluidPage(
editTableUI("tab2"))
server <- function(input, output, session) {
callModule(editTable, "tab2")
}
shinyApp(ui, server)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다