我正在使用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__.'));
但是,如何使用不是函数的包而是反应组件呢?在节点应用程序中,您'd use require() like below. Here'是一个带有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")
,一个解决方案(较少侵入性)将使用 rails, react-rails and browserify 的组合,如下所述:http://collectiveidea.com/blog/archives/2016/04/13/rails-react-npm-without-the-pain/
和这里
https://gist.github.com/oelmekki/c78cfc8ed1bba0da8cee
我没有重新粘贴整个代码示例,因为它很长很容易在将来发生变化