如何设置反应光纤的“类型”?

时间:2018-09-27 13:58:01

标签: reactjs react-fiber

我有一个自定义的React Fiber Reconciler,它是使用react-reconciler包中的默认导出创建的。 在ReactDOM组件中,我执行

this.mountNode = CustomRenderer.createContainer(this.stage)
CustomRenderer.updateContainer(
  <SomeContextProvider>{children}<SomeContextProvider/>,
  this.mountNode,
  this
)

但是,当我打开React devtools时,我得到

Uncaught TypeError: Cannot read property 'replace' of null  in the getDataFiber method here:
    case HostComponent:
        nodeType = 'Native';
        name = fiber.type;

        // TODO (bvaughn) we plan to remove this prefix anyway.
        // We can cut this special case out when it's gone.
        name = name.replace('topsecret-', ''); /////////// Error here on this line 

这似乎是因为fiber.type为空。 到处搜索,我看到人们将类型作为其渲染器的createContainer的第二个参数传递,但是这样做给了我一个奇怪且看似无关的错误

Uncaught TypeError: scheduleDeferredCallback is not a function
Uncaught TypeError: cancelDeferredCallback is not a function

,所以这可能不是正确的选择。

主机配置相当长,因此这里是要点:https://gist.github.com/arilotter/d34c684da13a4825285ddfe021ec4be3

这是我的package.jsonhttps://gist.github.com/arilotter/fd53712900f726a46c1d9a6ceeaf151c

我可以在哪里为容器指定type,以便devtools可以正常工作?

0 个答案:

没有答案