未捕获ReferenceError:未定义$(反应)?

时间:2019-09-16 19:45:31

标签: javascript reactjs

您好,我正在关注有关学习React的教程,并且一口气收到了未定义的参考错误。我正在本地调用所有依赖库,所以我认为hte库未完全加载不是问题。我是React的新手,所以我不确定问题是什么

我尝试重命名变量,并仔细研究了所有类似的问题,并在此处发布了参考错误

<div id="entry-point"></div>

<script src="lib/react.js"></script>
<script src="lib/react-dom.js"></script>
<script src="lib/babel.js"></script>    

<script>
 console.log('notes')       
        let notes = [
          { id: 1, content: "Learn React" },
          { id: 2, content: "Get Lunch" },
          { id: 3, content: "Learn React Native" }
        ]

        class Note extends React.Component {
          render() {
            return React.createElement("li", {}, this.props.content)
          }
        }

        class NotesList extends React.Component {
          renderNote(note) {
            return React.createElement(Note, { key: note.id, content: note.content })
          }
          render() {
            let { notes } = this.props

            return React.createElement("ul", {}, notes.map(this.renderNote, this))
          }
        }

        class App extends React.Component {
          render() {
            let { notes } = notes

            return React.createElement(
              "section",
              {},
              React.createElement("h1", {}, "You have ", notes.length, " notes"),
              React.createElement(NotesList, { notes: notes })
            )
          }
        }

        ReactDOM.render(
          React.createElement(App, { notes: notes }),
          document.getElementById("entry-point")
        )
</script>

这是我收到的错误消息:

ReferenceError: Cannot access 'notes' before initialization
    at App.render (scratch.html:47)
    at h (react-dom.js:130)
    at beginWork (react-dom.js:134)
    at d (react-dom.js:158)
    at f (react-dom.js:159)
    at g (react-dom.js:159)
    at t (react-dom.js:167)
    at x (react-dom.js:166)
    at r (react-dom.js:164)
    at v (react-dom.js:163)

1 个答案:

答案 0 :(得分:3)

ReferenceError:初始化之前无法访问“注释”     在App.render(scratch.html:47)

因此,编译器会告诉您问题出在哪里,在这种情况下,呈现函数中的第47行。

然后它告诉您在初始化之前无法访问。您正在尝试使用以下语法进行重构:

    let { notes } = notes

这实际上是在说“让便笺= notes.notes;”。由于notes是一个数组,并且没有名为notes的属性-您收到错误。您已经在范围中定义了注释,因此请尝试删除该行并查看会发生什么。