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