reactjs - 如何判断 React 中哪些 props 来自哪个库?
问题描述
我是一名 React 初学者,我的任务是理解和重构/增强遗留代码。我观察到大多数组件和容器都有很多“神奇”地出现并且可以使用的道具。
当然,props 是由某些库而不是魔法来填充的,但是对于没有足够了解项目中使用的所有库的人来说,了解单个组件中 props 的来源是很麻烦的;特别是如果组件有很多进口。
看这个例子:
const { error, location, submitting, handleSubmit, intl: { formatMessage } } = this.props
现在,我已经通过一一检查和谷歌搜索找到了location
来自react-router
图书馆、intl
来自react-intl
和剩余的来自redux-form
. 有没有更简单的方法来理解哪个道具由哪个库填充?
解决方案
在普通的 JS 中,除了通过组件树跟踪 props 并找出它们被注入的位置之外,别无他法。要么就是这样,要么只是通过你有经验的常用库来了解道具命名。
您可能正在处理一个架构不佳的项目。最佳实践是只在组件之间传递库道具一级,即从容器到组件。它们不应该从一个组件传递到另一个组件,因为这会使架构变得太脆弱且难以理解。
但是,如果您使用某种类型系统(Flow 或 TypeScript),则可以指示道具的类型,例如
import type { Location } from 'react-router'
type Props = {
location: Location,
}
推荐阅读
- java - Cucumber java - 将 .txt 文件中的字符串添加到黄瓜步骤定义
- autodesk-forge - 如何从查看器中的选定组件获取 xyz 坐标
- python - 如何将用户输入设置为另一个框架中 Tkinter Entry 小部件的默认文本?
- bash - 从 shell 重定向可执行文件的 stdout/stderr 但不重定向调用时错误
- prometheus - 通过 Rancher 访问 Prometheus 监控值
- python - 美丽的汤断言错误
- css - TYPO3 EXT:Content Element Wrap 和 EXT:GridElements
- nfc - 扫描NFC芯片时在URL中生成唯一的查询字符串值?
- c# - 店铺名称+编号并根据编号按大小排序
- azure - 为什么 Azure 搜索不能导入 JSON Blob?