首页 > 解决方案 > 警告:componentWillReceiveProps 已重命名,不推荐使用。请更新以下组件:控件

问题描述

我收到了这种类型的警告,但我不明白为什么:

react-dom.development.js:67 Warning: componentWillReceiveProps has been renamed, and is not recommended for use. See https://reactjs.org/link/unsafe-component-lifecycles for details.

* Move data fetching code or side effects to componentDidUpdate.
* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state
* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.

Please update the following components: Control(s)
printWarning    @   react-dom.development.js:67
warn    @   react-dom.development.js:34
./node_modules/react-dom/cjs/react-dom.development.js.ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings   @   react-dom.development.js:11530
flushRenderPhaseStrictModeWarningsInDEV @   react-dom.development.js:23822
commitRootImpl  @   react-dom.development.js:23005
unstable_runWithPriority    @   scheduler.development.js:468
runWithPriority$1   @   react-dom.development.js:11276
commitRoot  @   react-dom.development.js:22990
performSyncWorkOnRoot   @   react-dom.development.js:22329
scheduleUpdateOnFiber   @   react-dom.development.js:21881
updateContainer @   react-dom.development.js:25482
(anonymous) @   react-dom.development.js:26021
unbatchedUpdates    @   react-dom.development.js:22431
legacyRenderSubtreeIntoContainer    @   react-dom.development.js:26020
render  @   react-dom.development.js:26103
./src/index.js  @   index.js:11
__webpack_require__ @   bootstrap 74ac790…:678
fn  @   bootstrap 74ac790…:88
0   @   socket.js:24
__webpack_require__ @   bootstrap 74ac790…:678
(anonymous) @   bootstrap 74ac790…:724
(anonymous)

我不知道它是什么 Control(s) 组件,但我看到它是从 ./src/index.js 中的渲染开始的。但是 ./src/index.js 中的代码是:

import React from "react";
import ReactDOM from "react-dom";
import { BrowserRouter } from "react-router-dom";
import "bootstrap/dist/css/bootstrap.min.css";
import App from "./App";
import * as serviceWorker from "./serviceWorker";
import axios from 'axios';

axios.defaults.baseURL = process.env.REACT_APP_API_ENDPOINT;

ReactDOM.render(
  <BrowserRouter>
    <App />
  </BrowserRouter>,
  document.getElementById("root")
);

serviceWorker.unregister();

我是否使用旧库来获取此错误?有没有办法解决它?

标签: javascriptreactjswarnings

解决方案


推荐阅读