【问题标题】:JavaScript: "identifier has already been declaredJavaScript:“标识符已被声明
【发布时间】:2020-11-27 12:54:29
【问题描述】:

我正在学习教程,并且完全掌握了讲师的知识。但我的程序无法编译:

SyntaxError: /Users/at/Notes App/my-app/src/components/Sidenavbar/Sidenavbar.js: Identifier 'Sidenavbar' has already been declared (5:4)

import Sidenavbar from './components/Sidenavbar/Sidenavbar';
import './Clone.scss';

const Sidenavbar = () => {
    return (
        <div className="Clone">
            <h1> hi </h1>
        </div>
    )
}

export default Sidenavbar;

我不确定问题出在哪里,因为我已经逐行复制了所有内容,但讲师的程序仍在运行。

我也尝试更改变量 'const Sidenavbar' 的名称并且更多错误显示 uo。

【问题讨论】:

  • 它在import Sidenavbar 中定义...所以let Sidenavbar = 是重新声明-我认为let Sidenavbar = .... 等应该在文件中..../components/Sidenavbar/Sidenavbar 和@987654327 @ etc 是你使用它的方式——你可能误解了你的导师,或者你的导师误解了 javascript——我的意思是,你怎么知道导师代码有效?因为他说有?可能不会(绝对不会)
  • 我现在省略了 let,但我得到一个不同的错误:./src/components/Sidenavbar/Sidenavbar.js 未找到模块:无法解析 './components/Sidenavbar/Sidenavbar' in ' /Users/at/Notes App/my-app/src/components/Sidenavbar'
  • 你创建了那个文件吗?如果没有,你需要

标签: javascript html reactjs sass


【解决方案1】:

您已经在此行中执行 importSidenavbar

import Sidenavbar from './components/Sidenavbar/Sidenavbar';

下面几行你尝试定义一个同名的常量。这就是您出现该错误的原因。

const Sidenavbar = () => {

您可以通过像这样对导入的组件进行别名来重命名常量来解决这个问题

import {default as SideNavigationBar } from './components/Sidenavbar/Sidenavbar';

【讨论】: