希望你保持安全。
我搜索了类似的问题,但没有成功。
我的代码有 5k 行,所以发布它是不行的。
我会尽量提供尽可能多的信息。
简而言之,我有一些pickerInputs 用作rhandsontable 对象的反应过滤器。
我有一个保存按钮,以便用户保存他们的输入。
我最初的策略有一个致命弱点,即使用过滤进行保存会覆盖 rhandsontable 中的所有数据。
因此,一个快速的解决方法是添加一个observeEvent,其中保存按钮(通过使用ShinyJS)仅在pickerInput 选择了所有选项时才启用。
到目前为止,一切都很好,但我注意到一个奇怪的行为:最初,如果我们在 pickerInput 中单击“取消全选”,则保存按钮被禁用,但通过单击“全选”(启用保存按钮)然后“取消全选”然后保存按钮未禁用。
下面是我的 observeEvent 代码。
以前有没有人出现过这种行为?
## having buttons disabled by default to account for null/empty statement
shinyjs::disable("save_data_PCD_Metrics")
observeEvent(input$metricsTableEXCELPCDProject, {
req(input$metricsTableEXCELPCDProject)
print(length(input$metricsTableEXCELPCDProject))
print(length(sort(unique(as.character(metricsTableEXCEL$Project)))))
print(isTRUE(length(input$metricsTableEXCELPCDProject) == length(sort(unique(as.character(metricsTableEXCEL$Project))))))
print(input$metricsTableEXCELPCDProject)
## having buttons disabled by default to account for null/empty statement
shinyjs::disable("save_data_PCD_Metrics")
## toggle state of the button when condition of all projects selected
if(isTRUE(length(input$metricsTableEXCELPCDProject) == length(sort(unique(as.character(metricsTableEXCEL$Project)))))) {
shinyjs::enable("save_data_PCD_Metrics")
}
})
最好的,
R