Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何制作有条件显示按钮的闪亮模块?_R_Shiny - Fatal编程技术网

R 如何制作有条件显示按钮的闪亮模块?

R 如何制作有条件显示按钮的闪亮模块?,r,shiny,R,Shiny,目标是使一个闪亮的模块ui1.R仅在lsuId中键入内容时激活提交按钮。当前代码没有检索到任何错误,但它似乎从未调用toggleState ui.R library(shiny) library(shinyjs) htmlOutput("page") rm(list = ls()) library(shiny) library(dplyr) library(shinyjs) Logged <- FALSE shinyServer(function(input, output) {

目标是使一个闪亮的模块
ui1.R
仅在
lsuId
中键入内容时激活提交按钮。当前代码没有检索到任何错误,但它似乎从未调用
toggleState

ui.R

library(shiny)
library(shinyjs)
htmlOutput("page")
rm(list = ls())
library(shiny)
library(dplyr)
library(shinyjs)
Logged <-  FALSE

shinyServer(function(input, output) {

  observeEvent(input$"ui1Output-confirm", {
    Logged <<- T
  })

  observe({
input$"ui1Output-confirm"
    if (Logged == FALSE) {
      output$page <- renderUI({ 
        ui1Output('ui1Output') 
      })
      output$lsuId <- renderText({ input$lsuId })
    }
    if (Logged == TRUE) 
    {
      output$page <- renderUI({ ui2 })
    }
  })
  callModule(ui1,'ui1') 
})
library(shinyjs)

ui1Output <-  function(id, label = "ui1") {
  ns <- NS(id)
  shinyUI(fluidPage(
    useShinyjs(),
    titlePanel("Form"),
    div(textInput(ns("lsuId"), "This has to be filled", ""),
      actionButton(ns("confirm"), "Submit", class = "btn-primary")
    )
  ))
}

ui1 <- function(input, output, session) {
    shinyjs::toggleState(id = "confirm", condition = F)
  observeEvent(input$lsuId!="", {
    shinyjs::toggleState(id = "confirm", condition = T)
  })
}
ui2<-  shinyUI(fluidPage(
 div("well done!")
))
source('ui1.R') #login page
source('ui2.R')
server.R

library(shiny)
library(shinyjs)
htmlOutput("page")
rm(list = ls())
library(shiny)
library(dplyr)
library(shinyjs)
Logged <-  FALSE

shinyServer(function(input, output) {

  observeEvent(input$"ui1Output-confirm", {
    Logged <<- T
  })

  observe({
input$"ui1Output-confirm"
    if (Logged == FALSE) {
      output$page <- renderUI({ 
        ui1Output('ui1Output') 
      })
      output$lsuId <- renderText({ input$lsuId })
    }
    if (Logged == TRUE) 
    {
      output$page <- renderUI({ ui2 })
    }
  })
  callModule(ui1,'ui1') 
})
library(shinyjs)

ui1Output <-  function(id, label = "ui1") {
  ns <- NS(id)
  shinyUI(fluidPage(
    useShinyjs(),
    titlePanel("Form"),
    div(textInput(ns("lsuId"), "This has to be filled", ""),
      actionButton(ns("confirm"), "Submit", class = "btn-primary")
    )
  ))
}

ui1 <- function(input, output, session) {
    shinyjs::toggleState(id = "confirm", condition = F)
  observeEvent(input$lsuId!="", {
    shinyjs::toggleState(id = "confirm", condition = T)
  })
}
ui2<-  shinyUI(fluidPage(
 div("well done!")
))
source('ui1.R') #login page
source('ui2.R')

下面是我将如何处理这个问题:

用户界面

服务器.R

library(shiny)

shinyServer(
  function(input, output) {

    output$submit.button <-
      renderUI(expr = if (nchar(input$text.field)) {
        submitButton()
      } else {
        NULL
      })

  }
)
库(闪亮)
shinyServer(
功能(输入、输出){

输出$submit.button您的解决方案是否保持按钮的启用/禁用效果?我试图以两种不同的方式保持按钮。