首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将basic Javascript项目转换为React-Typescript兼容项目

如何将basic Javascript项目转换为React-Typescript兼容项目
EN

Stack Overflow用户
提问于 2021-01-17 08:40:15
回答 1查看 222关注 0票数 0

我正在尝试将一个基本的TS应用程序转换为React Typscript应用程序。

我的html看起来像这样:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta charset="UTF-8" />
  </head>
  <body>
    <p>This is the entry point to my app</p>
  </body>
</html>

我用的是webpack,所以我的index.js是基础的:

代码语言:javascript
复制
import './index.css';
import './components/my-component';

到目前为止,我的主要尝试是模仿creat-react-app并添加一个文件

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

const MyComponent: React.FunctionComponent = (): JSX.Element => {
  return <div> Hello !!! </div>;
};
export default MyComponent;

并更改index.html body部分,如下所示:

代码语言:javascript
复制
  <body>
    <div id="root"></div>
  </body>

并将index.ts更改为index.tsx,如下所示:

代码语言:javascript
复制
import './index.css';

import React from 'react';
import ReactDOM from 'react-dom';

import MyComponent from './components/my-component';

ReactDOM.render(
  <React.StrictMode>
    <MyComponent />
  </React.StrictMode>,
  document.querySelector('#root'),
);

它可以正常编译,但会呈现一个空页面。我得到的错误是:专门针对<React.StrictMode>TypeError: undefined is not an object (evaluating 'react_dom_1.default.render')。我正在使用"react": "^17.0.1"

我还看到,由于某种原因,它没有接收到我的组件

当我检查页面时,我可以看到以下源代码:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta charset="UTF-8" />
  </head>
  <body>
    <div id="root"></div>
  <script type="text/javascript" src="/chunks/app.js"></script></body>
</html>

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2021-01-17 09:08:53

巴别塔的ES模块版本和实际的ES模块规范( TypeScript更密切地遵循)并不总是一致的。对于没有默认导出的模块,包括React和ReactDOM,您需要这样导入它们:

代码语言:javascript
复制
import * as React from 'react'
import * as ReactDOM from 'react-dom'

这将导入这些名称下的React和ReactDOM模块的所有导出,而不是假装它们有一个默认的导出。

在许多情况下,通常包括简单的函数组件,您也不需要指定返回类型,因为它很容易推断。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65756207

复制
相关文章

相似问题

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