【问题标题】:Why does this render say that it requires a semi colon?为什么这个渲染说它需要一个分号?
【发布时间】:2021-11-02 16:59:45
【问题描述】:

我是新来的反应,我试图弄清楚为什么这个渲染语句说它需要一个分号。

import React, { useState, useEffect } from 'react';
import './App.css';
import firebase from 'firebase/compat/app';
import 'firebase/database';
import 'firebase/firestore';

function test() {

    render() {
        return (
            <div>
                <p>Display</p>
            </div>
        );
    }
  } 
  

  export default test;

【问题讨论】:

  • 它需要分号是什么意思,在哪里?这可能只是你的 linter 上的设置,在这种情况下,你应该把分号放在它说的地方 - 我想在你的 test 函数的末尾
  • 组件应以大写首字母 (Test) 开头。 render 方法适用于 class 组件,这是一个函数。这是一个语法错误,因为您没有声明一个方法render,而是调用了一个不存在的函数并在一个不起作用的地方添加了一个主体。您是否尝试使用函数或类组件?

标签: reactjs firebase


【解决方案1】:

test 是函数组件,函数组件不需要渲染方法。只需删除 render 方法,代码就可以工作了。

详细了解函数组件here

【讨论】:

    【解决方案2】:

    大多数 ECMAScript 语句和声明必须以分号结尾。这样的分号可能总是显式地出现在源文本中。然而,为方便起见,在某些情况下,可以从源文本中省略此类分号。描述这些情况时,分号会自动插入到源代码令牌流中。

    在您的情况下,ES6 正在通过 babel 使用。它是一个转译器,它可能会在将源文本转译为原生 JS 的过程中添加遗漏的分号。

    【讨论】:

      猜你喜欢
      • 2012-04-29
      • 1970-01-01
      • 2010-12-15
      • 1970-01-01
      • 1970-01-01
      • 2017-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多