R Shiny:req() *至少一个*多个objects/values

R Shiny: req() *at least one of* multiple objects/values

很抱歉,如果这很简单,但我找不到答案。我刚开始使用 validate/req。在我闪亮的应用程序中,我目前有:

myfx <- reactive({
    req(c(input$value, data1(), data2()) )
    ...
})

这确保所有值在执行前都是真实的。但我想要的是要求输入和 至少一个数据 值。我怎样才能做出这样的作品?

myfx <- reactive({
        req(c(input$value, any_of(data1(), data2())) )
        ...
    })

req 只要它的参数解析为“Truthy”就可以工作,但它总是假设“AND”。要获得“或”,我认为您需要手动接管一些测试,可能是这样的:

myfx <- reactive({
  req(
    isTruthy(input$value),
    isTruthy(data1()) || isTruthy(data2())
  )
  ...
})

(那是 shiny::isTruthy,如果您想阅读更多相关信息。目前是 1.6.0 版,我认为该功能不会很快发生变化。)