config modeBarButtonsToRemove fails if length is 1
Đang mở
Chưa có ai nhận issue này.
good-for-first-time-contribution
- Ngôn ngữ chính
- R
- Star
- 2.7k
- Fork
- 641
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
The plot silently fails to render and throws a javascript error when listing only 1 button for removal with config(modeBarButtonsToRemove = c(...))
# Basic failure
plot_ly(data = mtcars, x = ~mpg, y = ~wt) %>%
config(modeBarButtonsToRemove = c("hoverCompareCartesian"))
plot_ly(data = mtcars, x = ~mpg, y = ~wt) %>%
config(modeBarButtonsToRemove = c("zoom2d"))
# Fails even when button is superfluous ("zoom3d" not needed for a 2d plot)
plot_ly(data = mtcars, x = ~mpg, y = ~wt) %>%
config(modeBarButtonsToRemove = c("zoom3d"))
# Fails when passed as a scalar
plot_ly(data = mtcars, x = ~mpg, y = ~wt) %>%
config(modeBarButtonsToRemove = "hoverCompareCartesian")
// javscript error from browser
Uncaught TypeError: x.config.modeBarButtonsToRemove.push is not a function
at Object.renderValue (plotly.js:155)
at exports.OutputBinding.shinyBinding.renderValue (htmlwidgets.js:516)
at exports.OutputBinding.onValueChange (output_binding.js:16)
at exports.OutputBinding.delegator.(:7541/anonymous function) [as onValueChange] (http://127.0.0.1:7541/htmlwidgets-1.3/htmlwidgets.js:112:23)
at OutputBindingAdapter.onValueChange (output_binding_adapter.js:21)
at ShinyApp.receiveOutput (shinyapp.js:332)
at ShinyApp.<anonymous> (shinyapp.js:544)
at ShinyApp._sendMessagesToHandlers (shinyapp.js:529)
at ShinyApp.dispatchMessage (shinyapp.js:515)
at WebSocket.c.onmessage (shinyapp.js:112)
renderValue @ plotly.js:155
shinyBinding.renderValue @ htmlwidgets.js:516
onValueChange @ output_binding.js:16
delegator.(anonymous function) @ htmlwidgets.js:112
onValueChange @ output_binding_adapter.js:21
receiveOutput @ shinyapp.js:332
(anonymous) @ shinyapp.js:544
_sendMessagesToHandlers @ shinyapp.js:529
dispatchMessage @ shinyapp.js:515
c.onmessage @ shinyapp.js:112
Adding a second, even irrelevant value, fixes the error.
# Remove 2 buttons
plot_ly(data = mtcars, x = ~mpg, y = ~wt) %>%
config(modeBarButtonsToRemove = c("hoverCompareCartesian","zoom2d"))
# zoom3d would not appear by default because this is a 2d plot, but adding it to the argument prevents the error
plot_ly(data = mtcars, x = ~mpg, y = ~wt) %>%
config(modeBarButtonsToRemove = c("hoverCompareCartesian","zoom3d"))
I am using plotly 4.8.0
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Tái hiện lỗi với các ví dụ R bằng cách sử dụng các giá trị modeBarButtonsToRemove một phần tử và vô hướng. Bắt đầu tại điểm vào renderValue được hiển thị trong stack trace của trình duyệt, sau đó xác minh rằng các cấu hình một nút được render mà không có lỗi, trong khi hành vi hiện có với nhiều nút vẫn được giữ nguyên.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- javascript, r
- Lĩnh vực
- data-visualization, frontend
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 38/100