我是新人,我遵循这篇文章https://www.airpair.com/reactjs/posts/reactjs-a-guide-for-rails-developers
在rails app中使用反应,一切都很好。但后来我想在records.html
页面summernote(WYSIWYG html编辑器)中加入。我发现这个npm模块react-summernote并且无法使编辑器工作。
这是我的代码(尝试1):
var ReactSummernote= window.ReactSummernote = global.ReactSummernote = require('react-summernote');
<%= react_component 'ReactSummernote'%>
这是我的代码(尝试2):
@RichTextEditor = React.createClass
render: ->
React.createElement ReactSummernote
<%= react_component 'RichTextEditor'%>
并收到此错误
react.self-e3251ec ... .js?body = 1:1285警告:React.createElement:type不应为null,undefined,boolean或number。它应该是一个字符串(对于DOM元素)或一个ReactClass(对于复合组件)。检查
Constructor
的呈现方法。
答案 0 :(得分:2)
有些值得检查的事情;
我假设您的节点包正在安装到/node_modules/*
。确保将这些包添加到资产管道中。我用browserify来完成这个。
检查浏览器控制台以查看是否正在设置变量(只需键入ReactSummernote
。如果导入正确,结果应该是函数,如果有问题,结果应该是未定义的。)
如果你已经走到这一步并且仍然卡住,我建议不使用react-rails就触发渲染。通过vanilla javascript渲染页面的组件是很容易的,如果它是导致你出现问题的react-rails gem,那么可以通过这样的方式轻松地导航它;
ReactDOM.render(
<h1>Hello, world!</h1>,
document.getElementById('example')
);