javascript - 在自定义反应组件中获取道具值建议
问题描述
我制作了一个名为的组件TextName
,它采用name
这样的道具:
import PropTypes from 'prop-types';
import React from 'react';
const TextName = props => {
const { name } = props;
return <p>Hello {name}</p>;
};
TextName.propTypes = {
name: PropTypes.oneOf(['X', 'Y', 'Z'])
};
export default TextName;
解决方案
使用 javascript 设置无法提供道具类型建议。将其更改为 typescript 并使用 Proptypes 来获得所需的道具建议。
使用 create-react-app (cra)添加typescript
到新项目:
和npm
npx create-react-app my-app --template typescript
和yarn
yarn create react-app my-app --template typescript
添加typescript
到现有的反应项目:
1.安装typescript相关依赖
yarn add typescript @types/node @types/react @types/react-dom @types/jest --dev
2.更改文件扩展名
将所有返回的文件更改jsx
为.tsx
. 不返回的文件jsx
应该有.ts
扩展名
3.添加Prop类型和State类型
考虑上面的代码。要将其更改为具有道具类型建议,我们以这种方式进行更改。
interface TextNameProps {
name: "X" | "Y" | "Z";
}
const TextName = (props: TextNameProps) => {
const { name } = props;
return <p>Hello {name}</p>;
};
在上面的代码中,我们有 2 处更改,
- 创建一个接口
TextNameProps
- 将此添加到
TextName
组件的道具
4. 更新 package.json 和 tsconfig 文件
当您使用npm start
或yarn start
react 运行项目时,会自动检测 tsx 的使用并添加tsconfig
. 如果提示添加文件,请接受它以添加文件。
推荐阅读
- python - 查找嵌套大括号的深度
- windows - Apache 正在运行但不能远程连接
- android - 如何在android studio中将代码行移动到侧面(左/右)?
- apache-kafka - Kafka - 流与主题
- flutter - 如何在 Flutter 测试中找到“FlatButton.icon”?
- c++ - 如何在windows中使用注入的dll中的参数调用函数
- javascript - 使用 Hooks 处理 React 中的大量表单字段
- javascript - 用户可以提及两个用户。| 不和谐.js
- python - Python Pandas 数据清理
- terminal - 如何在尝试退出 w3m 时禁用退出确认?