์ด๋ด ๋,
๋น์ ์ ๋ฉ์ง ํจํค์ง์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. reset()
ํจ์๊ฐ radioButtons๋ฅผ ๋ฒํผ์ด ์ ํ๋์ง ์์ ์ํ๋ก ์ฌ์ค์ ํ ์ ์๋ค๋ฉด ์ ์ฉํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค( selected = character(0)
์ฌ์ฉํ์ฌ ๋ฌ์ฑํ ์ ์๋ ๊ฒ).
๋ฏธ์ํ์ง๋ง, Shinyjs๋ ๋น๋๊ธฐ ์ ๊น์ง ๊ทธ ๊ธฐ๋ฅ์ ์ง์ํ์ง ์์ ๊ฒ์
๋๋ค. ๋ด ๋ง์ Shiny๋ฅผ ์ฌ์ฉํ๋ฉด ๋ผ๋์ค ๋ฒํผ์ ๊ฐ์ ์
๋ฐ์ดํธํ ์ ์์ง๋ง( updateRadioButtons()
) ๊ฐ์ผ๋ก ์๋ฌด ๊ฒ๋ ์ ํํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ๋ํ ๋ผ๋์ค ๋ฒํผ์ ๋ํ ๋ฌธ์๋ฅผ ๋ณด๋ฉด character(0)
์ด ๊ฐ๋ฅํ๋ค๊ณ ๋ช
์์ ์ผ๋ก ๋์ ์์ง๋ง ํด๋น ์ํ๋ก ๋์๊ฐ ์ ์๊ธฐ ๋๋ฌธ์ ๊ถ์ฅํ์ง ์์ต๋๋ค. ๊ทธ๋์ ๋๋ ๋์ผํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง ์๊ณ ๋์ผํ ๋ฐ์ง์์ ์ ์งํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค.
์ ๋ง ์ด๋ ๊ฒ ํด์ผ ํ๋ค๋ฉด renderUI(radioButtons(...))
์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค. :)
@daattali ์ด ํ๋ฅญํ ํจํค์ง์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ์ด์ญ์ผ์ผ ์ ํ์ฌ์ด ๋์์ ์ ๋๋ก ๋ฐ์ง์์ ์ง์๋ฉ๋๋ค https://github.com/rstudio/shiny/commit/770ebc394f1685c2d4a1eb7fd2d1610796281b84 https://github.com/rstudio/shiny/issues/2266
์
๋ ฅ ๊ฐ์ NULL
์ฌ์ค์ ๋ฉ๋๋ค.
Shinyjs๊ฐ ์ง๊ธ ์ด๊ฒ์ ์ง์ํ ์ ์๋ค๋ฉด ์ข์ ๊ฒ์
๋๋ค. ์ฌ์ฉ์๊ฐ ์ ํ๋์ง ์์ ์ํ๋ก ๋์๊ฐ ์ ์๋ ๊ฒฝ์ฐ์๋ ์ด ๊ธฐ๋ฅ์ด ์ ์ฉํ ์ด์ ๋ ๋ฌด์์
๋๊น?
์ด์ ์ฌ๋ก/๊ด์ฐฐ์์ ์ฐ๋ฐ์ ์ผ๋ก ๋๋ฆฐ ์
๋ ฅ์ ํผํ๊ธฐ ์ํด (๋ฒ์ฃผํ) ๋ฐ์ดํฐ ์
๋ ฅ์ ์ํ ๋ฐ์ง์ด๋ ์ฑ์ ๋ง๋ค๊ณ ์์ต๋๋ค. ๋ชจ๋ ๋ผ๋์ค ์์๋ฅผ ์ง์๋๋ค. ์ด ์์๋ disable
s ์ ์ถ ๋ฒํผ์ ์ง์๋๋ค(shinyjs ๐ ๊ฐ์ฌํฉ๋๋ค).
ใ
library(shiny) # > 1.5.0
library(shinyjs)
shinyApp(
ui = fluidPage(
useShinyjs(),
div(
id = "form",
radioButtons("gender", "Gender", c("Male", "Female"), selected = character(0))
),
actionButton("resetGender", "Reset Gender"),
),
server = function(input, output, session) {
observeEvent(input$resetGender, {
updateRadioButtons(session, "gender", selected = character(0))
})
observe(print(input$gender))
})
}
)
}
์๋ ค ์ค์ ๊ณ ๋ง์. ๋ฌธ์ ๋ฅผ ๋ค์ ์ด๊ฒ ์ง๋ง ์ด ๊ธฐ๋ฅ์ ๋ํ ์์ ์ ์ธ์ /์ผ๋ง๋ ํ ์ ์์์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. PR ํ์ํฉ๋๋ค
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์๋ ค ์ค์ ๊ณ ๋ง์. ๋ฌธ์ ๋ฅผ ๋ค์ ์ด๊ฒ ์ง๋ง ์ด ๊ธฐ๋ฅ์ ๋ํ ์์ ์ ์ธ์ /์ผ๋ง๋ ํ ์ ์์์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. PR ํ์ํฉ๋๋ค