In meinem Code habe ich keine explizite Verwendung voncomponentWillMount
, aber ich sehe immer noch einige Warnungen beim Ausführen webpack
.
react-dom.development.js: 12386 Warnung: componentWillMount wurde umbenannt und wird nicht zur Verwendung empfohlen. Weitere Informationen finden Sie unter https://fb.me/react-unsafe-component-lifecycles.
- Verschieben Sie Code mit Nebenwirkungen nach componentDidMount und legen Sie den Anfangszustand im Konstruktor fest.
- Benennen Sie componentWillMount in UNSAFE_componentWillMount um, um diese Warnung im nicht strengen Modus zu unterdrücken. In React 17.x funktioniert nur der Name UNSAFE_. Um alle veralteten Lebenszyklen in ihre neuen Namen umzubenennen, können Sie sie
npx react-codemod rename-unsafe-lifecycles
in Ihrem Projektquellordner ausführen .Bitte aktualisieren Sie die folgenden Komponenten: foo, bar
Ich habe den Vorschlag ausgeführt npx react-codemod rename-unsafe-lifecycles
, aber die Warnung ist nicht verschwunden, sondern hat nur den Wortlaut geändert
react-dom.development.js: 12386 Warnung: componentWillMount wurde umbenannt und wird nicht zur Verwendung empfohlen. [...]
Hier foo
und bar
sind beide benutzerdefinierten Komponenten unser Team geschrieben, und einige Komponenten von externen Bibliotheken. Eine vollständige Suche in der Visual Studio-Lösung nach componentWillMount
Doese führt zu keinem Ergebnis. Könnte mir bitte jemand erklären, was ich falsch gemacht haben könnte?
Ich habe bei einer anderen Frage einen Kommentar gelesen
Ich habe keinen expliziten Platz bei
componentWillMount
, aber ich habe [...] eine Codezeile nach dem Konstruktor mitstate={ tabindex:0 }
Wie "verschiebe" ich das in den Konstruktor?
Die Antwort war zu schreiben
constructor(props) {super(props); this.state = { tabindex:0 }}
. Kann jemand bitte erklären, was hier los war? Nach welchen Mustern muss ich in unserem Code suchen?
Weitere Details
printWarning @ react-dom.development.js:12386
lowPriorityWarningWithoutStack @ react-dom.development.js:12407
./node_modules/react-dom/cjs/react-dom.development.js.ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings @ react-dom.development.js:12577
flushRenderPhaseStrictModeWarningsInDEV @ react-dom.development.js:25641
commitRootImpl @ react-dom.development.js:24871
unstable_runWithPriority @ scheduler.development.js:815
runWithPriority$2 @ react-dom.development.js:12188
commitRoot @ react-dom.development.js:24865
finishSyncRender @ react-dom.development.js:24251
performSyncWorkOnRoot @ react-dom.development.js:24223
scheduleUpdateOnFiber @ react-dom.development.js:23590
scheduleRootUpdate @ react-dom.development.js:26945
updateContainerAtExpirationTime @ react-dom.development.js:26973
updateContainer @ react-dom.development.js:27075
(anonymous) @ react-dom.development.js:27663
unbatchedUpdates @ react-dom.development.js:24375
legacyRenderSubtreeIntoContainer @ react-dom.development.js:27662
render @ react-dom.development.js:27756
./src/index.tsx @ index.tsx:52
__webpack_require__ @ bootstrap:19
0 @ bundle.js:152632
__webpack_require__ @ bootstrap:19
(anonymous) @ bootstrap:83
(anonymous) @ bootstrap:83
verbunden
antd
verwendet cWM
. Ich bin gespannt, auf welche Architekturprobleme Sie beim Aktualisieren antd
stoßen würden. Es scheint ein offenes Problem auf Github in Bezug auf veraltete Lebenszyklusmethoden zu sein. Github.com/ant-design/ant-design/issues/9792