Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 导入具有两个或多个不同名称的默认组件_Reactjs_Ecmascript 6 - Fatal编程技术网

Reactjs 导入具有两个或多个不同名称的默认组件

Reactjs 导入具有两个或多个不同名称的默认组件,reactjs,ecmascript-6,Reactjs,Ecmascript 6,我想做的是: 在一个文件中导入同一默认组件两次或多次。我之所以要这样做,是因为组件是相同的,我只需要名称的差异,使它更可读 我所做的: 从“/input”导入到输入; 从“/input”导入从输入 有没有正确的方法可以做到这一点?它可以工作,但是ESLint抱怨重复导入。您不应该这样做。发布场景,说明您为什么需要此功能 只要这样做: 常量FromInput=ToInput 或者,如果确实需要,只需禁用该文件的eslint规则 /*eslint在此处禁用导入/您的规则*/您不应该这样做。发布场景,

我想做的是: 在一个文件中导入同一默认组件两次或多次。我之所以要这样做,是因为组件是相同的,我只需要名称的差异,使它更可读

我所做的: 从“/input”导入到输入; 从“/input”导入从输入


有没有正确的方法可以做到这一点?它可以工作,但是ESLint抱怨重复导入。

您不应该这样做。发布场景,说明您为什么需要此功能

只要这样做:

常量FromInput=ToInput

或者,如果确实需要,只需禁用该文件的eslint规则


/*eslint在此处禁用导入/您的规则*/

您不应该这样做。发布场景,说明您为什么需要此功能

只要这样做:

常量FromInput=ToInput

或者,如果确实需要,只需禁用该文件的eslint规则


/*eslint disable import/your rule here*/

看起来您真正想要做的是创建输入组件的两个不同实例,但您描述的是创建输入组件类/描述符的副本。虽然这样做是可能的,但这通常是一种不好的做法

试着用面向对象的概念来思考React。请记住,从“./input”导入的构造在您的例子中,ToInput是一个类,而不是该类的实例

传统上,要创建名为Input的类的实例,我们将编写如下内容:

var toInput = new Input()
但是,在React中定义类输入的实例时,我们通常使用JSX标记:

如果可读性是您的最终目标,那么可以使用道具区分这两个组件,而不是创建组件类的副本。您可以使用id道具,例如:

<Input id='to-input' />
<Input id='from-input' />

希望这能回答您的问题。

看起来您真正想做的是创建一个输入组件的两个不同实例,但您描述的是创建一个输入组件类/描述符的副本。虽然这样做是可能的,但这通常是一种不好的做法

import Input as MyInput from './input';
import Input as MySecondInput from './input';
试着用面向对象的概念来思考React。请记住,从“./input”导入的构造在您的例子中,ToInput是一个类,而不是该类的实例

传统上,要创建名为Input的类的实例,我们将编写如下内容:

var toInput = new Input()
但是,在React中定义类输入的实例时,我们通常使用JSX标记:

如果可读性是您的最终目标,那么可以使用道具区分这两个组件,而不是创建组件类的副本。您可以使用id道具,例如:

<Input id='to-input' />
<Input id='from-input' />
希望这能回答你的问题

import Input as MyInput from './input';
import Input as MySecondInput from './input';
现在您可以将该组件用作MyInput或MySecondInput,因为它们都是同一组件的引用或实例


现在您可以将该组件用作MyInput或MySecondInput,因为它们都是同一组件的引用或实例。

非常感谢!为什么我自己没有想到呢?你能更具体地解释为什么我不应该这样做吗?@ReidunMarie,因为你已经有了导入值。再次将其导入另一个变量没有任何意义,因为您可以只将导入的变量分配给一个var,就像我的回答中那样。我认为,如果出于某种原因关闭了缓存,则可能会两次导入文件。默认情况下,它应该处于打开状态。这可能也是您出现eslint错误的原因。非常感谢您的解释!非常感谢你!为什么我自己没有想到呢?你能更具体地解释为什么我不应该这样做吗?@ReidunMarie,因为你已经有了导入值。再次将其导入另一个变量没有任何意义,因为您可以只将导入的变量分配给一个var,就像我的回答中那样。我认为,如果出于某种原因关闭了缓存,则可能会两次导入文件。默认情况下,它应该处于打开状态。这可能也是您出现eslint错误的原因。非常感谢您的解释!不返回输入FYI的实例,它返回一个对象,如果该对象还没有实例,它可以用来创建一个实例。我的坏-有关于如何重新命名我的答案的建议吗@loganfsmyth不会返回输入FYI的实例,它会返回一个对象,如果该对象还没有实例,它可以用来创建一个实例。我的错-有关于如何重新命名我的答案的建议吗@虽然这个代码片段可以解决这个问题,但它确实有助于提高文章的质量。请记住,您将在将来回答读者的问题,而这些人可能不知道您的代码建议的原因。虽然此代码片段可以解决问题,但确实有助于提高您文章的质量。请记住,您将在将来为读者回答这个问题,而这些人可能不知道您的代码的原因 格雷斯蒂翁。