React动态组件缺少ReactOwner

时间:2016-01-06 12:46:57

标签: javascript reactjs

我有反应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,现在一切正常。

1 个答案:

答案 0 :(得分:0)

Michelle Tilley var React = require('React')var React = require('react')解决了这个问题。