代码之家  ›  专栏  ›  技术社区  ›  CB_at_Sw

Next.js React组件不允许在“导出默认值”功能中使用HTML

  •  -1
  • CB_at_Sw  · 技术社区  · 2 年前

    我定义了一个Next.js(TypeScript/Rect)如下:

    'use client'
    import React, { FunctionComponent } from 'react';
    import { Uploader } from "uploader";
    import { UploadButton } from "react-uploader";
    import * as fs from 'fs';
    
    const uploader = Uploader({
        apiKey: "free" // Get production API keys from Bytescale
      });
      
    const options = { multi: true };
    
    export default function Certificates() {
        return (
            <h1>Certificate Management</h1>
            <UploadButton uploader={uploader}
                      options={options}
                      onComplete={files => alert(files.map(x => fs.readFileSync(x.fileUrl, 'utf-8')).join("\n"))}>
            {({onClick}) =>
              <button onClick={onClick}>
                Upload Certificate...
              </button>
            }
          </UploadButton>
        );
    }
    

    据我所知,我做的每件事都是正确的。但是VSCode抱怨函数中的HTML return 语句,应用程序将不会生成。我以前从未遇到过从组件导出HTML的问题。

    为什么它会给我这个错误?我是不是错过了图书馆?

    1 回复  |  直到 2 年前
        1
  •  1
  •   Evren    2 年前

    您应该返回到单个元素,可以通过这种方式进行修改

    return (<>
             <h1>Certificate Management</h1>
             <UploadButton uploader={uploader}
                      options={options}
                      onComplete={files => alert(files.map(x => 
                      fs.readFileSync(x.fileUrl, 'utf-8')).join("\n"))}>
               {({onClick}) => <button onClick={onClick}>
                               Upload Certificate...
                             </button>}
             </UploadButton>
          </>
        );