0
我有一个问题,反应0.14.5阵营动态组件丢失ReactOwner
我得到这个有趣的错误信息
未捕获不变违规:addComponentAsRefTo(...):只有ReactOwner可以参。您可能正在向组件添加ref,该组件不是在组件的
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一切删除裁判 “作品”(没有错误)。 为什么?
编辑: 改变需要(“阵营”)要求(“反应”),现在我得到
警告:不能给予无国籍功能部件裁判(见参考文献“行粗粮”中由ChangeAllocationsModal创建)。试图访问这个参考将失败。
删除了React.createFactory,现在一切正常。
在github上有同样的问题https://github.com/gcanti/tcomb-form/issues/107 - 你见过吗? –
提示:尝试将var React = require('React')'改为'var React = require('react')'(小写第二个“R”),以确保您的系统只导入一次React。 –
同时检查您正在使用的其他库是否正在导入不同版本的React。 (做一个'npm ls | grep -i react')。我用React-Bootstrap很多地遇到了这个问题。 – Brandon