博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Formik官方应用案例解析(四)组件生命周期事件
阅读量:5825 次
发布时间:2019-06-18

本文共 1576 字,大约阅读时间需要 5 分钟。

基础

示例工程:formik-09x-component-lifecycle-events-example

核心文件:index.js

示例说明

Formik大部分示例工程中都使用了极其方式创建Formik表单组件,本示例中则使用了复杂(或者说典型)方式创建一个Formik表单组件,即使用其继承自React.Component组件,从而展示有关生命周期事件的基本使用。但是,也比较简单,只涉及到了两个事件:


  • componentWillReceiveProps

  • render


但是,这个示例中使用的componentWillReceiveProps事件在最新的React中已经过时。引用一个老外的话说是:

This lifecycle, however, is on the deprecation path; it will stop working as-named in React 17:

Given that, we should provide a more future-friendly solution for listening for shallow route changes. Perhaps adding a popstate listener in componentDidMount. If that seems like the best option I can add it to docs, but opening this ticket for discussion/tracking.

现在,在最新版本React环境下需要使用UNSAFE_componentWillReceiveProps()来代替。

另外:在新版本中,官方明确指出使用上述事件容易导致一些复杂BUG的出现,所以官方建议使用事件来代替。另外,还有如下建议:

Note:

Using this lifecycle method often leads to bugs and inconsistencies, and for that reason it is going to be deprecated in the future.

If you need to perform a side effect (for example, data fetching or an animation) in response to a change in props, use componentDidUpdate lifecycle instead.

For other use cases, follow the recommendations in this blog post about derived state.

If you used componentWillReceiveProps for re-computing some data only when a prop changes, use a memoization helper instead.

If you used componentWillReceiveProps to “reset” some state when a prop changes, consider either making a component fully controlled or fully uncontrolled with a key instead.

In very rare cases, you might want to use the getDerivedStateFromProps lifecycle as a last resort.

引用

1,

2,

转载地址:http://kiidx.baihongyu.com/

你可能感兴趣的文章
python matplotlib 中文显示参数设置
查看>>
【ros】Create a ROS package:package dependencies报错
查看>>
通过容器编排和服务网格来改进Java微服务的可测性
查看>>
re:Invent解读:没想到你是这样的AWS
查看>>
PyTips 0x02 - Python 中的函数式编程
查看>>
使用《Deep Image Prior》来做图像复原
查看>>
Linux基础命令---rmdir
查看>>
Android图片添加水印图片并把图片保存到文件存储
查看>>
BigDecimal 舍入模式(Rounding mode)介绍
查看>>
开源 免费 java CMS - FreeCMS1.2-标签 infoSign
查看>>
Squid 反向代理服务器配置
查看>>
Java I/O操作
查看>>
Tomcat性能调优
查看>>
Android自学--一篇文章基本掌握所有的常用View组件
查看>>
灰度图像和彩色图像
查看>>
FreeMarker-Built-ins for strings
查看>>
argparse - 命令行选项与参数解析(转)
查看>>
修改上一篇文章的node.js代码,支持默认页及支持中文
查看>>
spring-boot支持websocket
查看>>
菜鸟笔记(一) - Java常见的乱码问题
查看>>