我想知道如何将用户输入的文本保存在闪亮的应用程序中,以便在服务器端使用它。 我想检查用户输入的值是否有效 在用户端有这个textInput:
textInput("entity1", "Enter a keyword")
并且在服务器端我想使用此代码检查用户的值:
entity1 <- reactive({
if(input$actb >= 0 ){
withProgress(session, min=1, max=15, expr={
for(i in 1:15) {
setProgress(message = 'please wait',detail = 'it may take some time',value=i)
Sys.sleep(0.1)
}
})}
smallE= "[a-z]"
keyword = as.character(input$entity1)
if(match(input$entity1, smallE))
{
message("sorry you did not enter a valid keyword. please try again")
Sys.sleep(1)
}
else
entity1 <- readTweets()
})
我试图在服务器端声明一个全局变量来保存输入:
if(match(as.vector(userInput), smallE))
userInput是一个包含entity1
值的全局变量但是有一个错误继续显示:
as.vector(x,mode)出错: 不能强迫类型&#39;关闭&#39;矢量类型&#39;任何&#39;
任何可能对我有用的建议?
答案 0 :(得分:2)
很难用这一大块代码来分开。我会避免调用任何全局变量,但是,您可以在用户指定输入值之前分配NULL值。
你也在调用你的对象和你的反应函数&#34; entity1&#34;,所以这有点令人困惑。
另一件事是你定义了对象&#34;关键字&#34;但是再也不用了。
我认为你可能会更好地使用%in%作为你的二进制而不是匹配()。
不确定是否有任何帮助...但您看到的错误特别是代码的as.vector()部分。我甚至不确定你为什么使用它,因为textInput字段中的任何字符串都将作为向量进入。
答案 1 :(得分:0)
存在验证功能,例如在此示例中:
telnet-daemon