reactjs - 为什么要在 render() 方法之外定义无状态函数?
问题描述
我正在阅读有关 redux 表单的文档并通过以下声明:
您必须在您的 render() 方法之外定义无状态函数,否则它将在每次渲染时重新创建,并且将强制 Field 重新渲染,因为它的组件属性会不同。
以下是代码示例:
// outside your render() method
const renderField = (field) => (
<div className="input-row">
<input {...field.input} type="text"/>
{field.meta.touched && field.meta.error &&
<span className="error">{field.meta.error}</span>}
</div>
)
// inside your render() method
<Field name="myField" component={renderField}/>
我的问题是,为什么要在 render() 方法之外定义无状态函数?上面提到的原因是 Field 将被强制重新渲染,因为组件 prop 将在每次渲染时重新创建。但是由于 Field 是一个子组件,即使函数是在外部定义的,它也会被重新渲染。正确的?我是反应新手。请让我知道我的理解哪里出错了。谢谢!
解决方案
推荐阅读
- php - Laravel 6:如何在字段中使用客户验证消息
- reactjs - Android物理设备上的网络请求失败
- nginx - 从 NginX 中的代理传递语句中删除尾部斜杠
- node.js - 有没有办法从请求对象读取文件输入和文本输入,它作为多部分表单数据传递给 loopback2 POST API?
- ios - 无法将 Apple Watch 模拟器与 iPhone 模拟器同步以添加 SSL 证书
- java - 方法覆盖的异常问题
- docker - Kubernetes集群中Linux节点重启的最佳策略是什么
- php - 除了 Codeigniter 中的一个字段,我们如何从数据库中获取数据
- javascript - RxJS:X 排放后更改节流阀时间
- r - 在面板数据中填写 Miss Years