Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.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 为什么Shining解释的功能是被动的?_R_Shiny_Reactive - Fatal编程技术网

R 为什么Shining解释的功能是被动的?

R 为什么Shining解释的功能是被动的?,r,shiny,reactive,R,Shiny,Reactive,我不完全理解为什么会这样: 库(闪亮) ui=基本页面( 滑块输入(“x”,label=“x value”,最小值=0,最大值=100,值=20), 文本输出(“输出”) ) 服务器=功能(输入、输出、会话){ val=函数(pre=”“){ 粘贴0(预处理,输入$x) } 输出$out=renderText({ 粘贴(val(“out:”)) }) } shinyApp(用户界面、服务器) 我是否在使用未记录的行为? 是否有更干净的方法来使用包含反应对象的函数?哪一位不清楚-您可以在函数中使

我不完全理解为什么会这样:

库(闪亮)
ui=基本页面(
滑块输入(“x”,label=“x value”,最小值=0,最大值=100,值=20),
文本输出(“输出”)
)
服务器=功能(输入、输出、会话){
val=函数(pre=”“){
粘贴0(预处理,输入$x)
}
输出$out=renderText({
粘贴(val(“out:”))
})
}
shinyApp(用户界面、服务器)
我是否在使用未记录的行为?
是否有更干净的方法来使用包含反应对象的函数?

哪一位不清楚-您可以在函数中使用
input$x
参见下半部分的示例,使用
currentFib
“无功导体”部分最后一个示例中描述了这种行为。基本上,函数调用继承了
renderText()
的反应式环境。但是您仍然无法在反应式环境之外成功调用函数。。。。从教学角度来看,如果函数引用是一个既没有内部定义也没有传递给它的变量,那么函数就很难再现,也很难排除故障。也许这听起来有点主观臆断(也许是这样),但很多时候,这种做法产生的问题(由于R会话重新启动,变量不再存在)很难追踪。在
反应性
观察
的情况下,是的,我认为它们是一个例外。然而,一个相反的论点是,单元测试要求每个小函数都是可测试的,但是通过硬编码
在函数中输入$x
,它无法被测试;最好将一些变量作为参数传递(在本质上可能是被动的,也可能不是被动的),这样就可以在外部环境中验证函数。(当然你对你闪亮的应用程序功能有100%的覆盖率,对吧?;-)到底哪一点不清楚-你可以在一个函数中使用
input$x
?-参见下半部分的示例,使用
currentFib
“无功导体”部分最后一个示例中描述了这种行为。基本上,函数调用继承了
renderText()
的反应式环境。但是您仍然无法在反应式环境之外成功调用函数。。。。从教学角度来看,如果函数引用是一个既没有内部定义也没有传递给它的变量,那么函数就很难再现,也很难排除故障。也许这听起来有点主观臆断(也许是这样),但很多时候,这种做法产生的问题(由于R会话重新启动,变量不再存在)很难追踪。在
反应性
观察
的情况下,是的,我认为它们是一个例外。然而,一个相反的论点是,单元测试要求每个小函数都是可测试的,但是通过硬编码
在函数中输入$x
,它无法被测试;最好将一些变量作为参数传递(在本质上可能是被动的,也可能不是被动的),这样就可以在外部环境中验证函数。(当然,你的闪亮应用程序功能有100%的覆盖率,对吗?;-)