我希望用户定义一个初始数值,然后在每次单击操作按钮时将其更新(即增加)一个设定值。我使用reactValid尝试进行此更新,但是却出现了可怕的 Operation,如果没有活动的active context 错误,则不允许这样做。我很困惑,因为我以为使用reactVal 正在反应式表达式中做某事,但是显然我错了。
我一直在寻找相关的问题/文章/教程,但空着。任何建议深表感谢。并且请让我知道是否有更好的方法来完成此任务,即我是否应该使用其他函数或方法。
下面是我的代码的精简版本:
$ cat file | tr '\n' ' ' | sed -E 's/ ("[^"]*")/\n\1/g'
答案 0 :(得分:1)
以下作品。当向您报告时,您不允许做的事情。使用i()
的{{1}}的初始化需要反应性上下文。
可以通过在想要的初始值(input$init.i
)上再设置一个observeEvent
来实现预期效果,并将其反应性值设置为该值。
input$init.i
此外,也不需要将library(shiny)
ui <- fluidPage(
## initilize the value
numericInput('init.i','initial i', 10),
## click this button to add one to the initial value
actionButton("run","Run"),
## output the current count
textOutput("cur.i")
)
server <- function(input,output) {
## Define the reactive value (with no 'inital' value)
i <- reactiveVal()
## Set i() based on "initialize" input widget
observeEvent(input$init.i, {
i(input$init.i)
})
observeEvent(input$run, {
## make a new value by adding 1 to the current value
new.i <- i() + 1
## update the value
i(new.i)
})
output$cur.i <- renderText({
i()
})
}
shinyApp(ui = ui, server = server)
嵌套在renderText
内。