gpt4 book ai didi

javascript - 在node.js中创建带有命名空间的模块

转载 作者:行者123 更新时间:2023-12-03 08:43:01 24 4
gpt4 key购买 nike

我有一个名为“myLib”的库,其中有几个 react 组件 comp1,..,compn,我希望能够将其导入到另一个项目中。

文件夹结构如下

|_Components
|_ Comp1.js
|_ Comp2.js
|_ Comp3.js
|_index.js

目前在我的index.js中

exports.Comp1 = require('./components/comp1');
exports.Comp2 = require('./components/comp2');
exports.Comp3 = require('./components/comp3');

在项目中我正在导入“myLib”,我这样做的方式

import myLib = require('myLib');

并在“myApp”的 render() 内使用 react 组件“Comp1”,我这样做

<myLib.Comp1></myLib.Comp1>

但我收到此错误

Uncaught Error: 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.

一点点谷歌搜索表明 react 被引用了两次。进入 Comp1 后,第二次进入使用 Comp1 的“myApp”。

我的问题是,我这样做对吗?以及如何修复我遇到的错误。

编辑:

在阅读了来自“myApp”的bundle.js之后,看起来react确实被引用了两次。我现在的问题是如何摆脱它。我正在使用 browserify。

最佳答案

My question now is how do i get rid of it. I'm using browserify.

来自:https://medium.com/@dan_abramov/two-weird-tricks-that-fix-react-7cf9bbdef375

<小时/>

以下是可能发生这种情况的几种原因:

  • 您安装了一个将 React 指定为依赖项的包,后来又安装了 React;
  • 您安装了 React,后来又安装了一个将不同版本的 React 指定为依赖项的包;
  • 您使用的是从 CDN 获得的全局 React,但安装了来自 NPM 的库,该库拥有自己的 React 副本;
  • 您在某些 NPM 依赖项的文件夹中运行了 npm install,从而安装了可能包含 React 的开发依赖项;

关于javascript - 在node.js中创建带有命名空间的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32999830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com