首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React TypeScript: react-markdown无重载匹配此调用

React TypeScript: react-markdown无重载匹配此调用
EN

Stack Overflow用户
提问于 2019-10-21 17:09:17
回答 1查看 568关注 0票数 0

如果需要,我很乐意转移到另一个库,但react-markdown似乎有很好的报告,然而,当我试图在函数组件中使用它与typescript一起使用时,我得到了下面的错误。

代码语言:javascript
复制
import React from 'react';
import Markdown from 'react-markdown';

const Home: React.FC = () => {

  const getMarkdown = async () => {
    const markdown = await fetch('../markdown/home.md');
    const text = await markdown.text();
    return text;
  }
  const src = getMarkdown();

  return (    
      <div className='max-width'>
          <span className='body'>
            <Markdown source={src} />
          </span>
      </div>
  );
}

export { Home };

我得到的错误是

代码语言:javascript
复制
No overload matches this call.
  Overload 1 of 2, '(props: Readonly<ReactMarkdownProps>): ReactMarkdown', gave the following error.
    Type 'Promise<Response>' is not assignable to type 'string'.
  Overload 2 of 2, '(props: ReactMarkdownProps, context?: any): ReactMarkdown', gave the following error.
    Type 'Promise<Response>' is not assignable to type 'string'.  TS2769
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-21 17:54:52

您可以使用react钩子

代码语言:javascript
复制
const Home = () => {
const [text, setText] = useState(null);
  useEffect(() => {
     async function getText() {
         const markdown = await fetch('../markdown/home.md');
         const text = await markdown.text();
         setText(text);
     }
     getText();
  }, []);
  return (<div className='max-width'>
          <span className='body'>
            <Markdown source={text} />
          </span>
      </div>);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58483099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档