为什么React-Magic-Move示例在JSFiddle中打破"只有一个ReactOwner可以有引用"错误?

goj*_*omo 5 jsfiddle reactjs

我想获得JSFiddle工作的漂亮react-magic-move组件的'基本'(美国各州)示例,以便进行修补.(另请参阅https://www.youtube.com/watch?v=z5e7kWSHWTg#t=424上令人印象深刻的视频演示)

我已经将react-magic-move'dist'脚本添加到Base React(JSX)小提琴,以及另一个(最低限度适应的)示例JS/CSS/HTML.您可以在此处查看此尝试:

http://jsfiddle.net/69z2wepo/4692/

但是,它会在初始渲染后期触发错误:

Invariant Violation: addComponentAsRefTo(...): Only a ReactOwner can have refs. This usually means that you're trying to add a ref to a component that doesn't have an owner (that is, was not created inside of another component's 'render' method). Try rendering this component inside of a new top-level component which will hold the ref.

它显然加载了MagicMove代码并在大部分渲染上取得了成功:在错误之后,真正的DOM已经被组装.在React应该工作之后包括dist脚本.

认为这可能是JSFiddle窗格特有的问题,我在本地文件中尝试了相同的设置:同样的错误.认为它可能是JSX在浏览器中的交互,我尝试了预编译的JSX:同样的错误.(见http://jsfiddle.net/5vjqabv3/325/).首先得到了React 0.13.1的错误; 试图回滚到0.12.0的基础小提琴:同样的错误.(见http://jsfiddle.net/kb3gN/10548/)

在异常时刻,当前元素(ReactElement,div,ref'AL')具有null _owner属性 - 这似乎是关闭的.

有什么想法阻止建立必要的React-owner-relationship?react-magic-move dist脚本是否在这种所需的"React-after-React"方式中被破坏或无法使用?

Hay*_*ian 2

这就是我为了让示例在本地运行而所做的

git clone git@github.com:ryanflorence/react-magic-move.git
cd react-magic-move
npm install
scripts/dev-examples
Run Code Online (Sandbox Code Playgroud)

现在在浏览器中打开http://localhost:8080/basic/,它可以正常工作

  • 如果你检查 dist/react-magic-move.js 文件,你会发现它包含了一堆来自 React.js 的东西,根据这个其他答案,这是错误的根源:http://stackoverflow.com/ a/29277601/840099 你最终会得到两个不同的react.js:一个是你专门包含的,另一个是模块内置到分布式js文件中的 (3认同)