我有反应0.14.5的问题
我收到这个有趣的错误消息
未捕获的不变违规:addComponentAsRefTo(...):只有ReactOwner可以有refs。您可能正在为未在组件
render
方法中创建的组件添加引用,或者您已加载多个React副本(详细信息:https://fb.me/react-refs-must-have-owner)。
我的动态生成组件没有ReactOwner。
以下是一些代码
'use strict';
var React = require('React');
var SettingsUtil = require('scripts/utils/settingsUtil');
var ChangeAllocationsModalRow = require('./changeAllocationsModalRow.jsx');
var ChangeAllocationsModal = React.createClass({
render: function() {
var branches = SettingsUtil.getOperatingBranches();
var branchesArray = [];
_.each(branches, function(enabled, operatingBranch) {
branchesArray.push({
operatingBranch: operatingBranch,
enabled: enabled
});
});
var printOperatingBranches = branchesArray.map(function(value) {
var refName = 'row-'.concat(value.operatingBranch);
return (
<ChangeAllocationsModalRow data={value} ref={refName} key={refName} />
);
});
return (
<div className="modal fade" id="changeAllocationsModal" tabIndex="-1">
<div className="modal-dialog modal-small text-left">
<div className="modal-content">
<div className="modal-body">
<table>
<tbody>
{printOperatingBranches}
</tbody>
</table>
</div>
</div>
</div>
</div>
);
}
});
module.exports = ChangeAllocationsModal;
如果我从ChangeAllocationsModalRow删除ref,那么&#34;工作&#34; (没有错误)。 为什么呢?
编辑: 更改要求(&#39; React&#39;)要求(&#39;做出反应&#39;)现在我得到了
警告:无法为无状态函数组件提供refs(参见参考文献&#34; row-roughage&#34;在ChangeAllocationsModal创建的绑定中)。尝试访问此参考将失败。
删除了React.createFactory,现在一切正常。
答案 0 :(得分:0)
Michelle Tilley var React = require('React')
到var React = require('react')
解决了这个问题。