2016-08-25 48 views
1

我正在用react-rails创建一个应用程序。这意味着所有资产都流过rails asset pipeline。为了访问第三方JavaScript库,我一直利用rails-assets.org,它将来自Bower的JavaScript包捆绑到您的rails环境中。大多数包可以直接在JavaScript代码中调用。你如何引用Rails应用程序中的第三方反应组件?

所以,如果你加包,拿marked降价库,包括它想:

gem 'rails-assets-marked', source: 'https://rails-assets.org' 

然后就可以轻松地从任何js文件在你的Rails应用程序调用它:

console.log(marked('I am using __markdown__.')); 

但是,如何使用不是函数的包,而是反应组件?在节点应用程序中,您将使用如下所示的require()。下面是与react-clipboard一个例子:

var Clipboard = require("react-clipboard"); 

var App = React.createClass({ 

    render: function() { 

    return (
     <div> 
     <Clipboard value='some value' onCopy={some function} /> 
     </div> 
    ); 
    }, 

但是,你是做什么的Rails应用程序做到这一点?

尽管该包已包含在rails资产管道中,但反应组件剪贴板在JSX中不可用。如何让它可用?

回答

1

没有办法直接使用rails来完成此操作。

为了能够使用require("react-clipboard"),一种解决方案(在较少干扰)是使用的导轨的组合,反应-轨道和browserify按此处的说明:

http://collectiveidea.com/blog/archives/2016/04/13/rails-react-npm-without-the-pain/

和这里

https://gist.github.com/oelmekki/c78cfc8ed1bba0da8cee

我没再粘贴整个代码示例,因为它是相当长而且容易在未来的危机变化e

+0

感谢您为我安排@borisrorsvort! :) –

+0

不客气:) – borisrorsvort