React Native:警告:componentWillReceiveProps 已重命名,不推荐使用。 SwipeOut 组件问题
Posted
技术标签:
【中文标题】React Native:警告:componentWillReceiveProps 已重命名,不推荐使用。 SwipeOut 组件问题【英文标题】:React Native: Warning: componentWillReceiveProps has been renamed, and is not recommended for use. SwipeOut component issue 【发布时间】:2020-06-06 09:57:33 【问题描述】:我在使用 Swipeout 时收到此警告:
" 警告:componentWillReceiveProps 已重命名,不推荐使用。见
将数据获取代码或副作用移至 componentDidUpdate。 如果您在 props 更改时更新状态,请重构您的代码以使用记忆技术或将其移动到静态 getDerivedStateFromProps。了解更多信息:*** 到 UNSAFE_componentWillReceiveProps 以在非严格模式下抑制此警告。在 React 17.x 中,只有 UNSAFE_ 名称可以使用。要将所有已弃用的生命周期重命名为新名称,您可以在项目源文件夹中运行 npx react-codemod rename-unsafe-lifecycles。 请更新以下组件: Swipeout "
componentWillMount 也是如此。
值得注意的是,使用 npx react-codemod rename-unsafe-lifecycles 无法缓解此错误。
我进入 Swipeout 的代码并手动添加了 UNSAFE_ 但每次我编译代码时,它都会恢复。
我在 GitHub 上打开了该页面的问题,但几天后没有回复。
建议?
谢谢,
【问题讨论】:
在等待更新时,您可以设置一个安装后脚本来复制修改后的文件并替换其在 Swipeout 的node_modules
下的对应文件。
@singamnv 可以在nodemodules下的swipout组件中将componentWillrecieveprops替换为getDerivedstatefromProps
【参考方案1】:
同时,我建议您分叉该项目。进行更改,从依赖项中删除 OG 包并安装您自己的 fork:
npm install <YOUR-GITHUB-USERNAME>/<YOUR-REPO-NAME>
哦,当你在做的时候,如果你有时间,向他们发送一个拉取请求;)
【讨论】:
以上是关于React Native:警告:componentWillReceiveProps 已重命名,不推荐使用。 SwipeOut 组件问题的主要内容,如果未能解决你的问题,请参考以下文章
React Native + react-native-router-flux:<Scene key='modal' component=Modal/> 有啥作用?
3.React Native在Android中自定义Component和Module
React-Native - 在Component和Class之间传递数据