You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rhino模块开发Shiny应用问题:输入内容无法显示求助

解决Rhino框架下Shiny模块中shiny.fluent TextField无法同步输入值的问题

问题出在shiny.fluent的TextField.shinyInput组件默认不会自动将用户输入同步到Shiny的input对象中,必须显式配置onChange回调来触发值的更新。

修改后的app/view/page1.R代码:

box::use(
    shiny[moduleServer, textOutput, renderText, NS, div],
    shiny.fluent[TextField.shinyInput, Stack, shinyInputChange]
)

#' @export
ui <- function(id){
    ns <- NS(id)
    Stack(
        TextField.shinyInput(
            ns("page1input"), 
            value = "default value",
            # 配置回调同步输入值到Shiny
            onChange = JS(sprintf("function(value) { %s(value); }", shinyInputChange(ns("page1input"))))
        ),
        textOutput(ns('page1print'))
    )
}

#' @export
server <- function(id) {
    moduleServer(id, function(input, output, session){
        output$page1print <- renderText(sprintf("Input from above: %s", input$page1input))
    })
}

修改说明:

  • 新增导入shiny.fluent的shinyInputChange函数,该函数用于生成触发Shiny输入更新的JavaScript代码。
  • 给TextField.shinyInput添加onChange参数,通过JS()定义回调函数,当用户修改输入内容时,将当前值传递给Shiny的input$page1input对象。

main.R的代码无需修改,保持原样即可。修改后,输入框的内容会实时同步并显示在下方的文本输出区域。

内容的提问来源于stack exchange,提问作者Jason

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 20:37:52