0

使用 react 0.13.3 和新的 react-canvas。我越来越

Invariant Violation: addComponentAsRefTo(...): 只有 ReactOwner 可以有 refs。这通常意味着您正在尝试将 ref 添加到没有所有者的组件(即不是在另一个组件的render方法中创建的)。尝试在一个新的顶级组件中渲染这个组件,该组件将保存 ref。

使用以下代码。它是从 compile-to-jsx 语言生成的,所以即使在清理一下之后看起来也有点难看。

define(["reactcanvas", "layout", "jquery", "underscore", "react"],
function(ReactCanvas, Layout, $, _, React){
    var
        ReactCanvas_Surface = ReactCanvas.Surface,
        ReactCanvas_Image = ReactCanvas.Image;

    var ReactCanvas_Surface_Factory = React.createFactory(ReactCanvas.Surface);
    var ReactCanvas_Image_Factory = React.createFactory(ReactCanvas.Image);
    var App = React.createClass({

        render: function render(){
            return (
                ReactCanvas_Surface_Factory({
                        top:0,
                        left:0,
                        width:420,
                        height:420
                    }, ReactCanvas_Image_Factory({
                        src:"img/tits.jpg"
                    }))

            );
        }

    });

    var App_Factory = React.createFactory(App);
    App.createMain = function createMain(el,data){

        React.render(App_Factory(), el[0]);
    }
    return App;

});
4

1 回答 1

0

显然在这里发布后立即在其他地方得到了答案。事实证明,ReactCanvas 模块捆绑了第二个版本的 React Canvas,这导致了问题。

于 2015-11-17T21:45:47.927 回答