Bagaimana untuk menyelesaikan masalah bahawa jenis yang dikembalikan oleh ReactDom.render tidak sepadan dengan jenis yang diperlukan?
P粉289775043
P粉289775043 2023-09-09 11:11:26
0
1
555

Rendering penurunan harga adalah fokus utama. Selain itu, saya perlu menghuraikan html yang diluluskan sebagai rentetan.

Anda boleh menganggapchildrenialah html yang diluluskan sebagai rentetan,isParseRequireddiluluskan sebagai benar

import cx from 'classnames' import 'github-markdown-css' import 'katex/dist/katex.min.css' import { FC, ReactNode, useEffect, useMemo, useState } from 'react' import { CopyToClipboard } from 'react-copy-to-clipboard' import { BsClipboard } from 'react-icons/bs' import ReactDom from 'react-dom' import ReactMarkdown from 'react-markdown' import reactNodeToString from 'react-node-to-string' import rehypeHighlight from 'rehype-highlight' import remarkBreaks from 'remark-breaks' import remarkGfm from 'remark-gfm' import remarkMath from 'remark-math' import supersub from 'remark-supersub' import Tooltip from '../Tooltip' import './markdown.css' const Markdown: FC<{ children: string, isParseRequired?: boolean}> = ({ children, isParseRequired = false }) => { return ReactDom.render(  { if (!props.title) { return  } return (    ) }, code: ({ node, inline, className, children, ...props }) => { if (inline) { return (  {children}  ) } return {children} }, }} children={children}/>, document.body) } export default Markdown

Ralat yang saya dapat ialah:src/app/components/Markdown/index.tsx:48:7 - 错误 TS2322: 类型 '({children, isParseRequired }: {children: string; isParseRequired?: boolean | undefined; }) => void | Element' 不可分配给类型 'FC<{children: string; isParseRequired?: 布尔值 |不明确的; }>'。

Nota: Saya menggunakan*.tsx

PS: Asalnya diterbitkan di https://github.com/orgs/remarkjs/discussions/1188

P粉289775043
P粉289775043

membalas semua (1)
P粉162773626

Alih keluar ReactDom.render dan balut ReactMarkdown dalam teg serpihan untuk kembali ke FC dan gunakan pemalam rehype-raw

import cx from "classnames"; import "github-markdown-css"; import "katex/dist/katex.min.css"; import { FC, ReactNode, useEffect, useMemo, useState } from "react"; import { CopyToClipboard } from "react-copy-to-clipboard"; import { BsClipboard } from "react-icons/bs"; import ReactDom from "react-dom"; import ReactMarkdown from "react-markdown"; import reactNodeToString from "react-node-to-string"; import rehypeHighlight from "rehype-highlight"; import remarkBreaks from "remark-breaks"; import remarkGfm from "remark-gfm"; import remarkMath from "remark-math"; import supersub from "remark-supersub"; import Tooltip from "../Tooltip"; import "./markdown.css"; import rehypeRaw from "rehype-raw"; const Markdown: FC<{ children: string, isParseRequired?: boolean }> = ({ children, isParseRequired = false, }) => { return ( <>  { if (!props.title) { return ; } return (    ); }, code: ({ node, inline, className, children, ...props }) => { if (inline) { return (  {children}  ); } return {children}; }, }} children={children} />  ); }; export default Markdown;
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!