首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将基于JavaScript或JSX的组件导入到React.rb中,以便在ruby中可以访问?

如何将基于JavaScript或JSX的组件导入到React.rb中,以便在ruby中可以访问?
EN

Stack Overflow用户
提问于 2016-04-07 11:46:11
回答 1查看 212关注 0票数 0

使用给出的用于React-Bootstrap和react.rb的示例可以很好地工作,但我试图让一个名为React-TimeAgo的NPN组件工作,但我迷路了。

这就是我所做的:

在index.js中(由Webpack导入到webpack捆绑包中):

代码语言:javascript
复制
window.bs = require('react-bootstrap')
window.timeago = require('react-timeago')

在实际的component.rb中,我有以下内容:

代码语言:javascript
复制
class Rb < React::NativeLibrary
  imports 'bs'
end

class TimeAgo < React::NativeLibrary
  imports 'timeago'
end

然后引用Bootstrap组件就能完美地工作:

代码语言:javascript
复制
Rb.Button(bsStyle: :primary) <- works as expected

但是我没有设法从TimeAgo包装器中获得任何东西:

代码语言:javascript
复制
TimeAgo.new(date: "Aug 29, 2014") {} <- just does nothing
TimeAgo(date: "Aug 29, 2014") {}     <- method undefined

我做错了什么?感谢大家的帮助!

EN

回答 1

Stack Overflow用户

发布于 2016-04-08 20:42:09

我找到了一个解决方法,但它并不是那么漂亮。希望能找到更好的解决方案!

代码语言:javascript
复制
class TimeAgo < React::Component::Base
   after_mount do
      `React.render(React.createElement(window.timeago,
        {date: 'apr 7, 2016'}),
        document.getElementById('something_unique')
       );`
   end

   def render
      span(id: "something_unique") { }
   end
 end

当然,您需要确保跨度的id是唯一的,并且您将日期作为道具传递,但为了简洁起见,我省略了这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36466338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档