私はR.シャイニー - renderUIでの問題()の反応性
でシャイニーパッケージで問題が発生した私はserver.Rで 『#オプション1』が動作しない理由を理解しようとしているが、「#をコメントしていますオプション2 "が機能します。 "#Option 1"をアクティブにすると、ランダムな文字列を入力してボタンを押してみてください。最初にテキストボックスの値を "abc"に置き換えますが、次の時間はすべて変更されません。
val()は既に入力$ changeに依存しているので、ボタンを押すたびに再実行する必要があります。さらに、 "#Option 2"はisolate()にラップされているため、任意の反応性。
"#Option 1"を使用すると、実際には値が "abc"に一部変更されているようです。 Google Chromeのinspect要素を開いておくと、 "#Option 2"はボタンを押すたびに値を変更し、 "#Option 1"も値を "abc"に変更しますが、ボタンが押されたときだけ画面が更新されます初めて押す。
server.R
require(shiny)
shinyServer(function(input, output) {
val <- reactive({
if(input$change>0) {
# Option 1
'abc'
# # Option 2
# isolate({
# paste('abc',input$txt,"")
# })
} else {
''
}
})
output$textbox <- renderUI({
textInput("txt","Text",val())
})
})
ui.R
require(shiny)
require(shinyIncubator)
shinyUI(pageWithSidebar(
headerPanel('Test'),
sidebarPanel(
uiOutput("textbox"),
actionButton("change", "Change")
),
mainPanel(
)
))
ありがとうございます!テキスト入力値の最後にスペースを追加し、最後に入力値にスペースがある場合はスペースを削除することで問題を解決しました。そのため、新しい値は常に前の値と異なります。私はとにかくすべての着信文字列をトリムします。 – user1603038