1

聚合物 0.1.1 和 React.js 0.8.0。

简化案例: http: //jsbin.com/usIZuLo/3在每个鼠标/滚轮/按键事件上都会出现这样的错误:

"TypeError: Cannot set property target of #<v> which has only a getter
  at b.<anonymous> (http://cdnjs.cloudflare.com/ajax/libs/react/0.8.0/react.js:7794:28)
  at t (http://cdnjs.cloudflare.com/ajax/libs/polymer/0.1.1/platform.js:29:26363)
  at s (http://cdnjs.cloudflare.com/ajax/libs/polymer/0.1.1/platform.js:29:25903)
  at p (http://cdnjs.cloudflare.com/ajax/libs/polymer/0.1.1/platform.js:29:25456)
  at HTMLDocument.o (http://cdnjs.cloudflare.com/ajax/libs/polymer/0.1.1/platform.js:29:25217)" 
    events.js:328

看起来 Polymer 的 events.js 与 React 的合成事件发生冲突。

错误堆栈到此结束(react.js:7794):

  // TODO: Remove when synthetic events are ready, this is for IE<9.
  if (nativeEvent.srcElement &&
      nativeEvent.srcElement !== nativeEvent.target) {
    nativeEvent.target = nativeEvent.srcElement;
  }

问题可能nativeEvent是实际上是由聚合物包裹的。根据// TODO:说明,这在未来版本的 React 中可能不是问题。

4

1 回答 1

1

这还没有在 React 版本中,但该代码在两个月前被删除:

https://github.com/facebook/react/commit/8529f1b05368837e2b0ca695f0866e33f8fc9b35

如果您从当前主服务器 ( ) 构建 React 的副本npm install; grunt build,您应该不会再看到错误。

于 2014-01-06T21:57:04.030 回答