首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >App默认创建-App App组件呈现两次

App默认创建-App App组件呈现两次
EN

Stack Overflow用户
提问于 2020-04-13 17:20:23
回答 2查看 1.3K关注 0票数 2

我通过命令启动了新的React项目:

npx create-react-app my-app --template typescript

然后,我将App组件改为如下所示:

代码语言:javascript
运行
复制
import * as React from 'react';

export default class App extends React.Component<{}> {
  public render() {
    console.log("App Rendered");
    return (
      <div>
        Hello World
      </div>
    );
  }
}

当我看到控制台日志(在Google和Microsoft中)时,我会收到以下消息:

代码语言:javascript
运行
复制
[HMR] Waiting for update signal from WDS...
App Rendered
App Rendered

我的问题:

为什么应用程序呈现被称为两次

如何删除WDS的第一条消息?

这是我的package.json (运行create-react-app时默认的):

代码语言:javascript
运行
复制
{
  "name": "my-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.3.2",
    "@testing-library/user-event": "^7.1.2",
    "@types/jest": "^24.0.0",
    "@types/node": "^12.0.0",
    "@types/react": "^16.9.0",
    "@types/react-dom": "^16.9.0",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-scripts": "3.4.1",
    "typescript": "~3.7.2"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-13 17:34:37

当使用React.StrictMode包装时( CRA模板是如何设置的),在开发中,呈现将被调用两次。这样做是为了捕获某些setState函数不纯时可能发生的bug。有关更多细节,您可以阅读

票数 13
EN

Stack Overflow用户

发布于 2020-04-13 17:32:31

从src/index.tsx中删除React.StrictMode

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

https://stackoverflow.com/questions/61193122

复制
相关文章

相似问题

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