我正在使用react-rails gem构建应用。这意味着所有资产都流经rails asset pipeline。为了访问第三方javascript库,我一直在利用rails-assets.org将来自bower的javascript包捆绑到你的rails环境中。大多数软件包都可以直接在您的javascript代码中调用。
因此,如果您添加包,请使用marked降价库,您可以将其包括在内:
gem 'rails-assets-marked', source: 'https://rails-assets.org'
然后可以轻松地从rails应用程序中的任何js文件中调用它,如:
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中不可用。如何让它可用?
答案 0 :(得分:1)
没有办法直接使用rails完成此操作。
为了能够使用create<>() const
,一种解决方案(较少侵入性)将使用 rails,react-rails和browserify 的组合,如下所述:
http://collectiveidea.com/blog/archives/2016/04/13/rails-react-npm-without-the-pain/
在这里
https://gist.github.com/oelmekki/c78cfc8ed1bba0da8cee
我没有重新粘贴整个代码示例,因为它很长很容易在将来发生变化