R R6 继承与 roxygen2 - “命名空间:ParentPackage”不导出类“ParentClass”

问题描述

我遇到了 R6 继承问题。我正在编写 2 个包(工作相关,所以我必须使用假代码,但我会尽量保持准确)。

在 ParentPackage 中,我定义了一个 R6 类 ParentClass。

#' @name ParentClass      
#' @title ParentClass 
#' @description blah blah
#' @importFrom R6 R6Class
#' @exportClass ParentClass 
#' @export
ParentClass <-
  R6Class('ParentClass',initialize() = function(){print('initialize')},list(method1 = function(){
      print('test') 
      }

# create helper function to create R6 class
#' @name create_ParentClass_object
#' @title Create a ParentClass object
#' @description
#' Helper function to create ParentClass object
#' @export create_ParentClass_object
create_ParentClass_object = function(){
  return(ParentClass$new())
}

安装后运行以下命令。

devtools::check()
roxygenize()
document()
install()

NAMESPACE 文件看起来正确。

export(ParentClass)
export(create_ParentClass_object)
exportClasses(ParentClass)
importFrom(R6,R6Class)

转到文件 2,保存在单独的目录中。它被称为 ChildPackage。

#' @name ChildClass
#' @title Create ChildClass Object
#' @description blah blah 2
#' @importFrom R6 R6Class
#' @importClassesFrom ParentPackage ParentClass
#' @importFrom ParentPackage ParentClass
#' @export
ChildClass<-
  R6Class('ChildClass',inherit = ParentClass,initialize = function(){},method2 = function(){}
)

但是我在尝试编译时遇到错误

roxygenise()
Warning message:
class "ParentClass" is not exported by 'namespace:ParentPackage' 
install()
Error: class "ParentClass" is not exported by 'namespace:ParentPackage' 

请注意,加载父库会显示类。即,ParentPackage::ParentClass 显示类。

R version 4.0.3 (2020-10-10)
roxygen2_7.1.1        devtools_2.3.2        usethis_2.0.0   

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)