我尝试在我的简单闪亮的应用程序中实现一个功能。我的目标是创建响应小部件,它将依赖于不同的小部件。在我的示例中,我有两个重要的小部件:ele.css('position', 'relative');
$('#handle').draggable({
opacity: 0.01,
helper: 'clone',
drag: function(event, ui) {
console.log(ui);
var rotateCSS = 'rotate(' + ui.position.left + 'deg)';
$(this).parent().css({
'-moz-transform': rotateCSS,
'-webkit-transform': rotateCSS
});
}
});
和radioButtons
。根据我在selectInput
中的选择,小部件radioButtons
的输出将会发生变化。
不幸的是我收到了错误:selectInput
。谢谢你的帮助。
ui.R
Error in as.name(input$xvar) :invalid type/length (symbol/0)
server.R
library(shiny)
shinyUI(
fluidPage(
fluidRow(
column(3,
selectInput('prod','', prod),
radioButtons('level','',level, level[1]),
uiOutput('in_xvar')
),
column(9,
ggvisOutput('ggvis_plot')
)
)
))
global.R
library(shiny)
library(ggvis)
library(dplyr)
shinyServer(function(input, output) {
data0 <- reactive({
df <- test_data
df <- df %>%
filter(prod == input$prod)
})
data <- reactive({
df <- data0()
df <- df %>%
filter(level == input$level)
})
output$in_xvar <- renderUI({
choosen_list <- axis_x[input$level]
selectInput('xvar','', choosen_list)
})
ggvis_plot <- reactive({
x <- prop('x', as.name(input$xvar))
plot <- data() %>%
ggvis(x, ~value) %>%
layer_points(fill = ~part)
})
ggvis_plot %>% bind_shiny('ggvis_plot')
})
答案 0 :(得分:2)
您收到错误是因为input$xvar
最初为NULL
,请尝试在ggvis_plot
中添加if / else:
ggvis_plot <- reactive({
if(is.null(input$xvar))
x <- prop('x', as.name("id"))
else
x <- prop('x', as.name(input$xvar))
plot <- data() %>%
ggvis(x, ~value) %>%
layer_points(fill = ~part)
})