【问题标题】:Object(...) is not a function on useRef hookObject(...) 不是 useRef 钩子上的函数
【发布时间】:2021-08-16 22:12:49
【问题描述】:

问题。 每次我尝试使用 useRef 时,它都会抛出一个错误 Uncaught TypeError: Object(...) is not a function

我正在尝试使用 react 钩子制作一个threejs 场景,但总是出现此错误。但在过去我使用基于类的组件完成它,它工作正常

这里是代码

    const Updated = () => {
      var earthMesh, freedomMesh;
      var scene;
      var result;
      const mount = useRef(null);       //error here
      const controls = useRef(null);

      const createMe = () => {
        const width = mount.current.clientWidth;
        const height = mount.current.clientHeight;

        var scene = new THREE.Scene();
        scene.background = new THREE.Color(0xdddddd);
        const camera = new THREE.PerspectiveCamera(60, width / height, 1, 5000);
        camera.position.set(0, 25, 25);
      };

      useEffect(() => {
        createMe();
      }, []);

      return (
        <div>
          <div
            style={{
              width: "600px",
              height: "470px",
            }}
            ref={mount}
          />
        </div>
      );
    };

    export default Updated;

【问题讨论】:

  • 你的反应版本是什么?和反应域?
  • 我只是检查它是一个旧的。它的 16.5.2,我如何也用其他软件包升级它?
  • 你是如何导入useRef的?

标签: javascript reactjs react-hooks


【解决方案1】:

问题在于您的版本16.5.2Hooks were introduced into 16.8.

要通过节点升级到最新版本: npm update &lt;package-name&gt;

【讨论】:

  • 我正在尝试更新,但它在没有执行任何操作的情况下返回了我。在这里我添加了照片 => ibb.co/wB3gjKC
  • 您的package.json 看起来也一样还是版本更新了?使用npm i 更新后,您还必须安装这些软件包。
  • 感谢帮助,我必须重新启动 vscode 才能看到更新的软件包
猜你喜欢
  • 2022-10-12
  • 2021-04-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-02
  • 1970-01-01
  • 2020-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多