我有一个shinyapp,它有一个基本的登录屏幕。
当应用加载时,“Logged”变量为FALSE。当用户在会话中成功登录时,R登录代码如下:
X$Logged <- TRUE
此时,在javascript控制台中,我收到警告说“Uncaught ReferenceError:TRUE未定义”。
我点击链接转到代码,javascript代码是:
(function() {
with (this) {return (X$Logged=TRUE);}
})
我是初学者。我假设首先,这是我上面的R代码的javascript渲染,其次它不喜欢它,因为javascript期望小写布尔“true”。
我该如何解决这个问题?同样,R不喜欢小写布尔值。
答案 0 :(得分:1)
我该如何解决这个问题?同样,R不喜欢小写布尔值。
在另一个中定义一个,例如当您在代码之前(在 JavaScript 中) JavaScript
var TRUE = true, FALSE = false;
然后
(function() {
with (this) {return (X$Logged=TRUE);} // should now work
})
或者,您可以使用类似bool的内容,例如1
和0
。
最后,你是如何进行R到JS转换的?这个井可能是您使用过的框架中的错误
答案 1 :(得分:0)
Paul和Mritunjay的回答帮助我解决了这个问题。
误解在我的ui.R文件中的conditionalPanel()中。我有:
conditionalPanel(
condition="X$Logged=TRUE"
...
)
我发现单身&#34; =&#34;而不是&#34; ==&#34;并且意识到引号中的条件是JS,而不是R.我因此将我的ui.R改为:
conditionalPanel(
condition="X$Logged=true"
...
)
然而,我保持大写&#34; TRUE&#34;在我的所有server.R逻辑中,如下所示:
X$Logged <- TRUE
......它现在有效。