R Shiny-将Shinyjs :: toggleState与ShinyWidgets :: pickerInput一起使用

时间:2019-03-28 04:09:21

标签: r shiny shinyjs

下面的应用程序包含一个标记为idClient的单选按钮组和一个呈现以下内容的renderUI表达式:

  1. 一个输入元素Options,具体取决于 选定的按钮和
  2. 一个actionButton input$data

在用户为input$add选择有效值之前,我想禁用该按钮。我绑上input$data,但这失败了。将observe({ toggleState(id = 'add', condition = !is.null(input$data)) })的值打印到控制台显示,pickerInput使用两个单独的值input$dataNULL进行了初始化:

""

,因此NULL [1] "" 返回:

!is.null(input$data)

不仅仅是[1] FALSE [1] TRUE

应用程序:

FALSE

此外,当您将单选按钮从默认选择library(shiny) library(shinyjs) library(shinyWidgets) ui <- fluidPage(shinyjs::useShinyjs(), prettyRadioButtons('opt', label = 'Options', choices = c('state', 'file', 'letters')), uiOutput('upload') ) server <- shinyServer(function(input, output, session) { output$upload = renderUI({ tagList( switch(input$opt, 'state' = pickerInput('data', 'Choose a state', choices = state.name, options = list(title = "States..."), choicesOpt = list(subtext = seq_along(state.name)) ), 'file' = fileInput('data', 'Select file'), 'letters' = pickerInput('data', 'Choose a letter', choices = LETTERS, options = list(title = "Letters..."), choicesOpt = list(subtext = seq_along(LETTERS)) ) ), actionButton('add', 'Add') ) }) observe({ print(input$data) # pickerInput initializes with two values toggleState(id = 'add', condition = !is.null(input$data)) }) }) shinyApp(ui, server) 切换到state,然后又返回到file时,pickerInput仅返回state(不是< / p>

[1] ""

它在启动时返回)。我不确定这里发生了什么,在pickerInput文档中找不到与此相关的任何内容,因此,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

空字符串import time import paho.mqtt.client as mqtt import json def on_connect(client, userdata, rc): print ("Connected with rc: " + str(rc)) client.subscribe("demo/test1") def on_message(client, userdata, msg): data_json = msg.payload data = json.loads(data_json) print(data['ant_plus_power']) client = mqtt.Client() client.on_connect = on_connect client.on_message = on_message x = client.connect("118.138.47.99", 1883, 60) print(x) client.loop_forever() 在R中不是空对象

''

  

NULL表示R中的空对象:它是一个保留字。   NULL通常由其值为   未定义。

?is.null

但是> !is.null('') [1] TRUE 将解决此问题

shiny::isTruthy