Я использую Material ui SwipeableViews, которые используют пакет ReactSwipableView, я получаю эту ошибку на консоли
react-dom.development.js: 12466 Предупреждение: componentWillReceiveProps был переименован и не рекомендуется для использования. Смотрите подробности.
- Переместите код выборки данных или побочные эффекты в componentDidUpdate.
- Если вы обновляете состояние каждый раз, когда изменяется реквизит, реорганизуйте свой код для использования методов запоминания или переместите его в статический getDerivedStateFromProps. Узнайте больше на:
- Переименуйте componentWillReceiveProps в UNSAFE_componentWillReceiveProps, чтобы отключить это предупреждение в нестрогом режиме. В React 17.x будет работать только имя UNSAFE_. Чтобы переименовать все устаревшие жизненные циклы в их новые имена, вы можете запустить их
npx react-codemod rename-unsafe-lifecycles
в исходной папке вашего проекта.Пожалуйста, обновите следующие компоненты: ReactSwipableView
Есть ли способ избавиться от этой ошибки, я попробовал UNSAFE_componentWillReceiveProps, но ничего не изменилось
componentWillReceiveProps
в своем компоненте, или это идет из вашего пакета?Ответы:
Похоже, об этом уже сообщили сопровождающим.
Теперь, как пользователь программного обеспечения с открытым исходным кодом, вы можете:
componentWillReceiveProps
на репоВ конечном счете, это не ошибка, связанная с вашим программным обеспечением, а зависимости, от которых оно зависит. Это не ваша ответственность, чтобы исправить это. Если ваше приложение работает, все будет хорошо. Предупреждения от
react-dom.development.js
не появятся в производстве.источник
Используйте
getDerivedStateFromProps
вместоcomponentWillReceiveProps
Например:
Перед:
После:
https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html
источник
У меня были проблемы с поиском, где в моем коде вызывался componentWillReceiveProps. Я заметил в предупреждении, что в нем упоминается определенный компонент, «Drawer», который был частью библиотеки ant-d, которую мы используем. После обновления ant-d до последней версии предупреждение исчезло.
источник
Это распространенная ошибка, возникшая в реактивном нативном проекте. Так что ее можно устранить, выполнив следующие действия:
-после того, как написать следующий код в вашем файле .js:
источник