3

我已经按照介绍指南:https : //kitware.github.io/vtk-js/docs/develop_requirement.html安装vtk、node和git。

我一直在尝试集成到 React 应用程序中,它输出:

无法编译 ./node_modules/vtk.js/Sources/Rendering/OpenGL/Texture/index.js 1126:25-47 “在“./ComputeGradients.worker”中找不到导出“默认”(导入为“ComputeGradientsWorker”)

我刚刚使用了以下代码:https ://kitware.github.io/vtk-js/examples/PolyDataReader.html

此外,如果我转到上一个文件并深入了解./ComputedGradients.worker,我可以很好地导航到ComputeGradients.worker.js.

我需要其他要求来执行应用程序吗?我正在使用节点服务器。

此外,我将代码编写为 React 代码:

import React from 'react';


import vtkActor from 'vtk.js/Sources/Rendering/Core/Actor';
import vtkFullScreenRenderWindow from 'vtk.js/Sources/Rendering/Misc/FullScreenRenderWindow/index';
import vtkMapper from 'vtk.js/Sources/Rendering/Core/Mapper';
import vtkPolyDataReader from 'vtk.js/Sources/IO/Legacy/PolyDataReader';

class LoadVTK extends React.Component() {
    render() {
        const fullScreenRenderer = vtkFullScreenRenderWindow.newInstance();
        const renderer = fullScreenRenderer.getRenderer();
        const renderWindow = fullScreenRenderer.getRenderWindow();

        const resetCamera = renderer.resetCamera;
        const render = renderWindow.render;

        const reader = vtkPolyDataReader.newInstance();
        reader.setUrl(`C:\Users\YonePC\WebstormProjects\prototipo\src\components\animals\cabezasegmentado02.vtk`).then(() => {
            const polydata = reader.getOutputData(0);
            const mapper = vtkMapper.newInstance();
            const actor = vtkActor.newInstance();

            actor.setMapper(mapper);
            mapper.setInputData(polydata);

            renderer.addActor(actor);

            resetCamera();
            render();

        });

        return (
            <div></div>
        );

    }
}

export default LoadVTK;

我在主页上使用它:

<LoadVTK/>

可能是什么问题呢?

4

2 回答 2

3

我运行了您的示例并发现了两个问题:

  • dist 路径的问题(已由 @Jonathan Quiroz 解决)

  • 扩展 React.Component() 而不是 React.Component - 这导致该代码可以构建,但不能在浏览器中正确运行。

不要忘记正确设置 webpack ( https://kitware.github.io/vtk-js/docs/intro_vtk_as_es6_dependency.html )

在这两次更新之后,它应该可以工作了——我已经测试过了。

于 2018-04-09T22:21:50.347 回答
1

您必须将文件放在服务器中,例如我正在使用 webpack 运行并且文件在文件夹 dist 中:dist/cabezasegmentado02.vtk

当您调用文件时: reader.setUrl("cabezasegmentado02.vtk")

于 2018-03-22T22:57:20.573 回答