将dateRangeInput还原为空

将dateRangeInput还原为空,r,shiny,R,Shiny,我可以以空的start和end启动dateRangeInput dateRangeInput(“日期”,“日期输入”,开始=”,结束=”) 在这个日期范围内进行选择之后,当我尝试 UpdateDataRangeInput(会话,“日期”,开始=”,结束=”) 它不起作用。它与其他类型的输入一起工作(见下文) 这是一个reprex,当我点击go时,它会显示日期,当我点击go2时,它什么也不做 库(闪亮) shinyApp( ui=fluidPage( h4(“日期:”), #以空日期开始 da

我可以以空的
start
end
启动
dateRangeInput

dateRangeInput(“日期”,“日期输入”,开始=”,结束=”)
在这个日期范围内进行选择之后,当我尝试

UpdateDataRangeInput(会话,“日期”,开始=”,结束=”)
它不起作用。它与其他类型的输入一起工作(见下文)

这是一个reprex,当我点击go时,它会显示日期,当我点击go2时,它什么也不做

库(闪亮)
shinyApp(
ui=fluidPage(
h4(“日期:”),
#以空日期开始
dateRangeInput(“日期”,“日期输入”,开始=”,结束=”),
动作按钮(“开始”,“开始”),
操作按钮(“go2”、“go2”),
#还有一个空按钮
文本输入(“文本”、“文本”),
操作按钮(“go3”、“go3”)
),
服务器=功能(输入、输出、会话){
observeEvent(输入$go{
#将相应地更改日期
更新的TerangeInput(
一场
“日期”,
开始=系统日期()-10,
end=Sys.Date()-5
)
})
observeEvent(输入$go2{
#无所事事
更新的TerangeInput(
一场
“日期”,
start=“”,
end=“”
)
})
ObserveeEvent(输入$go3{
#清空文本输入
updateTextInput(
一场
“文本”,
value=“”
)
})
}
)

这里有一种替代方法,使用
库(shinyjs)
中的
重置()
,而不是
更新的TerangeInput

library(shiny)
library(shinyjs)
shinyApp(
  ui = fluidPage(
    useShinyjs(),
    h4("Date:"),
    # Starting with an empty date
    dateRangeInput("date", "Date input", start = "", end = ""), 
    actionButton("go","go"),
    actionButton("go2","go2"), 
    # And an empty button
    textInput("text", "text"), 
    actionButton("go3","go3")
  ),
  server = function(input, output, session){
    observeEvent( input$go , {
      # Will change the date accordingly
      updateDateRangeInput(
        session, 
        "date", 
        start = Sys.Date()-10, 
        end = Sys.Date()-5
      )
    })
    observeEvent( input$go2 , {
      reset("date")
    })
    observeEvent( input$go3 , {
      # Empties the text input
      updateTextInput(
        session, 
        "text", 
        value = ""
      )
    })
  }
)

似乎需要一种日期格式。您可以使用
NA
代替


非常感谢你的建议!塞巴斯蒂安·罗切特(Sébastien Rochette)用纯闪亮的语言给出了答案,所以我接受了他的回答。shinyjs::reset会帮你做到这一点
library(shiny)
shinyApp(
  ui = fluidPage(
    h4("Date:"),
    dateRangeInput("date", label = h5("Date input"), start = "", end = ""), 
    actionButton("go","go"),
    actionButton("go2","go2")
  ),
  server = function(input, output, session){
    observeEvent( input$go , {
      cat("go1\n")
      updateDateRangeInput(session, "date", start = Sys.Date()-10, end = Sys.Date()-5)
    })
    observeEvent( input$go2 , {
      cat("go2\n")
      updateDateRangeInput(session, "date", start = NA, end = NA)
    })
  }
)