仅在添加预先存在的数据后才始终删除闪亮的 CRUD 应用程序中的第一行
Deleting always the first row in a shiny CRUD app only after adding preexsitent data
我被困住了,需要帮助。
我正在使用这个要点https://gist.github.com/gluc/d39cea3d11f03542970b
基本上,在闪亮的应用程序中,它提供了进行 CRUD 操作的可能性,并且效果完美。
我现在设法将数据存储在 googlesheets 上,并通过以下方式加载数据:
read_sheet
来自 googlesheets4
包的函数。
问题是如果我想删除 第一行 中 table 的 最后一行 按 删除按钮后被删除。
仅当我加载预先存在的数据(在我的例子中来自 googlesheets)时才会出现此问题。
我遇到了问题:当我在闪亮的应用程序 table.
中单击行时,id 没有更新
我用过 browser()
并遍历了每个功能,但我找不到问题。
如果我单击第一行并删除第一行,一切正常,但单击第二行或除第一行以外的任何其他行,总是会删除第一行。
更新:
我认为主要问题是在从 gogglesheets 中读取数据后,禁用的 Id
字段未使用 table 导航,请参见图片。
如果我点击第 3 行,那么 Id
字段应该是 3
,但它始终保持在 1
。因此,对 table 的任何操作(例如删除)都会删除第一行。
我无法获取环境中开始时加载的数据帧与 CRUD 应用程序定义的数据之间的 link。 akrun 的想法是完美的,应该可行,但它没有:
我在代码的开头将 read_sheet(...)
table 分配给如下响应:
df_id_read_sheet <- read_sheet("......")
responses <- df_id_read_sheet
一夜未眠。我找到了解决方案。它和我想的一样简单。按照亲爱的@akrun 的第一个建议,我检查了 str
加载的 googlesheet.
的结构
sheet 在将其转换为 data.frame
并分配给 responses
后导入为 tibble
,完整代码按预期工作。出现问题是因为行名。
在将 sheet 分配给 responses
后立即使用 browser()
我能够在我的控制台上看到并检查 shiny 应用程序中的结构。
我真的很喜欢使用 broswer()
进行调试,因为它也能让我看到闪亮的应用程序中发生了什么。
这是一个简单但很难发现的解决方案:在您闪亮的应用程序代码的开头:
library(magritter)
df_id_read_sheet <- read_sheet("put your sheet id here")
responses <- df_id_read_sheet
responses %<>%
as.data.frame()
我被困住了,需要帮助。
我正在使用这个要点https://gist.github.com/gluc/d39cea3d11f03542970b
基本上,在闪亮的应用程序中,它提供了进行 CRUD 操作的可能性,并且效果完美。
我现在设法将数据存储在 googlesheets 上,并通过以下方式加载数据:
read_sheet
来自 googlesheets4
包的函数。
问题是如果我想删除 第一行 中 table 的 最后一行 按 删除按钮后被删除。
仅当我加载预先存在的数据(在我的例子中来自 googlesheets)时才会出现此问题。 我遇到了问题:当我在闪亮的应用程序 table.
中单击行时,id 没有更新我用过 browser()
并遍历了每个功能,但我找不到问题。
如果我单击第一行并删除第一行,一切正常,但单击第二行或除第一行以外的任何其他行,总是会删除第一行。
更新:
我认为主要问题是在从 gogglesheets 中读取数据后,禁用的 Id
字段未使用 table 导航,请参见图片。
如果我点击第 3 行,那么 Id
字段应该是 3
,但它始终保持在 1
。因此,对 table 的任何操作(例如删除)都会删除第一行。
我无法获取环境中开始时加载的数据帧与 CRUD 应用程序定义的数据之间的 link。 akrun 的想法是完美的,应该可行,但它没有:
我在代码的开头将 read_sheet(...)
table 分配给如下响应:
df_id_read_sheet <- read_sheet("......")
responses <- df_id_read_sheet
一夜未眠。我找到了解决方案。它和我想的一样简单。按照亲爱的@akrun 的第一个建议,我检查了 str
加载的 googlesheet.
sheet 在将其转换为 data.frame
并分配给 responses
后导入为 tibble
,完整代码按预期工作。出现问题是因为行名。
在将 sheet 分配给 responses
后立即使用 browser()
我能够在我的控制台上看到并检查 shiny 应用程序中的结构。
我真的很喜欢使用 broswer()
进行调试,因为它也能让我看到闪亮的应用程序中发生了什么。
这是一个简单但很难发现的解决方案:在您闪亮的应用程序代码的开头:
library(magritter)
df_id_read_sheet <- read_sheet("put your sheet id here")
responses <- df_id_read_sheet
responses %<>%
as.data.frame()