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您的解决方案是否保持按钮的启用/禁用效果?我试图以两种不同的方式保持按钮。