Trong mã của tôi, tôi không có bất kỳ cách sử dụng rõ ràng nàocomponentWillMount
, nhưng tôi vẫn thấy một vài cảnh báo khi chạy webpack
.
Reac-dom.development.js: 12386 Cảnh báo: thành phầnWillMount đã được đổi tên và không được khuyến khích sử dụng. Xem https: /fb.me/react-unsafe-component-lifec đua để biết chi tiết.
- Di chuyển mã với các tác dụng phụ sang thành phầnDidMount và đặt trạng thái ban đầu trong hàm tạo.
- Đổi tên thành phầnWillMount thành UNSAFE_componentWillMount để chặn cảnh báo này ở chế độ không nghiêm ngặt. Trong React 17.x, chỉ tên UNSAFE_ sẽ hoạt động. Để đổi tên tất cả các vòng đời không dùng sang tên mới của chúng, bạn có thể chạy
npx react-codemod rename-unsafe-lifecycles
trong thư mục nguồn dự án của mình.Vui lòng cập nhật các thành phần sau: foo, bar
Tôi đã chạy đề xuất npx react-codemod rename-unsafe-lifecycles
, nhưng cảnh báo không biến mất, mà chỉ thay đổi từ ngữ của nó thành
Reac-dom.development.js: 12386 Cảnh báo: thành phầnWillMount đã được đổi tên và không được khuyến khích sử dụng. [...]
Ở đây, foo
và bar
cả hai thành phần tùy chỉnh mà nhóm chúng tôi đã viết và một số thành phần của các thư viện bên ngoài. Một tìm kiếm đầy đủ về giải pháp Visual Studio cho componentWillMount
doese không cho tôi bất kỳ kết quả nào. Ai đó có thể vui lòng giải thích cho tôi những gì tôi có thể làm sai?
Tôi đọc một câu hỏi khác một bình luận nêu
Tôi không có bất kỳ vị trí rõ ràng nào với
componentWillMount
, nhưng tôi có [...] một dòng mã sau hàm tạo vớistate={ tabindex:0 }
Làm thế nào để tôi "di chuyển" nó vào hàm tạo?
Câu trả lời là viết
constructor(props) {super(props); this.state = { tabindex:0 }}
. Ai đó có thể giải thích những gì đang xảy ra ở đây, xin vui lòng? Loại mẫu nào tôi phải tìm trong mã của chúng tôi?
Biết thêm chi tiết
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
Liên quan
antd
sử dụng cWM
. Tôi tò mò về những vấn đề kiến trúc bạn gặp phải bằng cách cập nhật antd
? Nó dường như là một vấn đề mở trên github liên quan đến các phương pháp vòng đời lỗi thời github.com/ant-design/ant-design/issues/9792