闪亮和Javascript - 未捕获的ReferenceError:未定义TRUE

时间:2014-07-27 12:35:11

标签: javascript r shiny

我有一个shinyapp,它有一个基本的登录屏幕。

当应用加载时,“Logged”变量为FALSE。当用户在会话中成功登录时,R登录代码如下:

X$Logged <- TRUE

此时,在javascript控制台中,我收到警告说“Uncaught ReferenceError:TRUE未定义”。

我点击链接转到代码,javascript代码是:

(function() {
with (this) {return (X$Logged=TRUE);}
})

我是初学者。我假设首先,这是我上面的R代码的javascript渲染,其次它不喜欢它,因为javascript期望小写布尔“true”。

我该如何解决这个问题?同样,R不喜欢小写布尔值。

2 个答案:

答案 0 :(得分:1)

  

我该如何解决这个问题?同样,R不喜欢小写布尔值。

在另一个中定义一个,例如当您在代码之前(在 JavaScript 中) JavaScript

var TRUE = true, FALSE = false;

然后

(function() {
    with (this) {return (X$Logged=TRUE);} // should now work
})

或者,您可以使用类似bool的内容,例如10

最后,你是如何进行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

......它现在有效。