如何解决为什么当 server = FALSE 时 selectizeInput 不选择第一个选项?
selectizeInput
的文档对参数 selected
的描述如下。
selected 最初选择的值(或多个值,如果有多个 = 真)。如果未指定,则默认为单选列表的第一个值,多选列表没有值。
如果没有为 selected
指定任何内容,我将这句话解释为 choices
参数将是 selected
参数的第一个元素。但是,在以下示例中,在为第一个 selectizeInput
选择任何数字后,第二个 selectizeInput
不会选择第一个选项。它仍将默认消息显示为占位符。
请注意,如果我设置 server = TRUE
,第二个 selectizeInput
将能够将第一个选项显示为 selected
。
我想知道为什么 server = TRUE
或 server = FALSE
会影响 selected
是否可以作为 choices
中的第一个元素。我还想知道如何使 server = FALSE
的行为与 server = TRUE
时相同。
library(shiny)
ui <- fluidPage(
headerPanel("shinyStore Example"),sidebarLayout(
sidebarPanel = sidebarPanel(
selectizeInput(inputId = "Select1",label = "Select A Number",choices = as.character(1:3),options = list(
placeholder = 'Please select a number',onInitialize = I('function() { this.setValue(""); }'),create = TRUE
))
),mainPanel = mainPanel(
fluidRow(
selectizeInput(inputId = "Select2",label = "Select A Letter",choices = character(0),options = list(
placeholder = 'Please select a number in the sidebar first',create = TRUE
))
)
)
)
)
server <- function(input,output,session) {
dat <- data.frame(
Number = as.character(rep(1:3,each = 3)),Letter = letters[1:9]
)
observeEvent(input$Select1,{
updateSelectizeInput(session,inputId = "Select2",choices = dat$Letter[dat$Number %in% input$Select1],server = FALSE)
})
}
shinyApp(ui,server)
解决方法
为什么不在服务器端完全创建第二个 private static void contentGUI(Container pane) {
pane.setLayout(new BoxLayout(pane,BoxLayout.Y_AXIS));
JButton task1 = new JButton(" > Advanced CPU Settings");
pane.add(task1);
JButton task2 = new JButton(" > Advanced Memory Settings");
pane.add(task2);
JButton task3 = new JButton(" > Advanced GPU Settings");
pane.add(task3);
JButton task4 = new JButton(" > Advanced Case Fan Settings");
pane.add(task4);
}
private static void toolTips() throws IOException,FontFormatException {
JPanel toolTipPane = new JPanel();
toolTipPane.setLayout(new BoxLayout(toolTipPane,BoxLayout.Y_AXIS));
JButton tip1 = new JButton("Esc: Exit");
toolTipPane.add(tip1);
JLabel tip2 = new JLabel("F1: About");
toolTipPane.add(tip2);
}
?
selectizeInput
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。