r - 为什么将 inputId 添加到我闪亮的应用程序的 pickerInput 段会破坏我的代码?
问题描述
#UI BEGINS
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
pickerInput("chosenplans", "Select State:",
#inputId = "stateList",
choices = as.character(unique(state_plan_data_filtered$state)),
options = list(
`actions-box` = TRUE,
`live-search` = TRUE),
multiple = FALSE,
selected = "Alabama"),
),
mainPanel()
),
)
每当我取消注释我的 inputId 时,我就无法运行我的 Shiny 应用程序,并且它给了我这个错误:
ChoiceOpt$style 中的错误:$ 运算符对原子向量无效
然而,inputId 理论上是pickerInput 的一个参数。为什么我不能明确地命名它?
解决方案
请注意,pickerInput
期望的参数是
args(pickerInput)
function (inputId, label = NULL, choices, selected = NULL, multiple = FALSE,
options = list(), choicesOpt = NULL, width = NULL, inline = FALSE)
"chosenplans"
默认情况下,您传递给函数的值将传递给inputId=
参数,因为这是它匹配的第一个未命名参数。但是,当您添加时,inputId = "stateList"
您似乎正在尝试添加第二个 ID,但这意味着“chosenplans”的值将被传递给您尚未指定的第一个参数,这意味着该label=
参数"Select State:"
将被传递并被传递到chociesOpt=
参数。choicesOpt
这不是生成错误的有效值。
问题是您标记了一些参数而不是其他参数,并指定了inputId=
两种不同的方式,它们以一种意想不到的方式改变了参数。
推荐阅读
- reactjs - 如何修复漏洞,为什么在我 npx create-react-app my_file 时没有提供模板?
- javascript - 单击按钮交互discord.js时如何告诉用户轮到他们了
- flutter - 如何在 Flutter Camera Plugin 中实现 Tap To Focus?
- node.js - typeDefs 必须只包含字符串、文档、模式或函数,得到对象
- c++ - C++ binary reading to dynamic char
- javascript - for循环嵌套数组长度无法读取属性错误
- c++ - 奇怪的包括问题。未知的覆盖说明符
- c# - 创建 ssl/tls 安全通道 c# 中的 webclient 错误
- python - 如何允许用户在 Django 中创建自己的帖子?
- rspec - rspec ActiveStorage::Attachment.count 不会改变