反作用|推进剂类型
哎哎哎:# t0]https://www . geeksforgeeks . org/reacjs-proptypes/
在我们之前关于道具的文章中,我们已经看到了如何使用道具向任何组件传递信息。我们传递了不同类型的信息,如整数、字符串、数组等。作为组件的道具。让我们回忆一下我们如何将这些道具传递给组件的过程。我们可以创建默认道具,也可以直接将道具作为属性传递给组件。我们从组件外部传递道具,并在组件内部使用它们。但是我们有没有检查过我们通过道具在组件中得到什么类型的值?不,我们没有。但是后来一切都很好。 我们是否使用组件中的道具验证我们获得的数据完全取决于我们。但是对于更大的应用程序,验证我们通过道具获得的数据总是一个很好的做法。这将有助于调试,也有助于避免将来出现错误。让我们看看如何做到这一点。
试剂中的丙烯类型
在发布 react 15.5.0 版本之前,propTypes 在 React 包中可用,但是在 React 的更高版本中,必须在项目中添加依赖项。您可以使用下面给出的命令在项目中添加依赖项:
npm install prop-types --save
我们可以使用道具类型来验证我们从道具接收的任何数据。但是在使用它之前,我们必须导入它。在你的 index.js 文件的顶部添加下面一行:
import PropTypes from 'prop-types';
一旦我们导入了 propTypes,我们就可以使用它们了。就像 defaultProps 一样,propTypes 也是对象,其中键是 prop 名称,值是它们的类型。下面的语法显示了如何使用 propTypes:
*ComponentClassName*.propTypes{
propName1 : PropTypes.string,
propName2 : PropTypes.bool,
propName3 : PropTypes.array,
.
.
.
.
propNamen : PropTypes.*anyOtherType*
}
在上面的语法中, ComponentClassName 是 Component 类的名称, anyOtherType 可以是我们允许作为道具传递的任何类型。对于不验证 propTypes 指定的数据类型的道具,控制台上将出现警告。为了更好地理解,让我们看看一个使用 propTypes 进行验证的完整程序:
java 描述语言
import PropTypes from 'prop-types';
import React from 'react';
import ReactDOM from 'react-dom';
// Component
class ComponentExample extends React.Component{
render(){
return(
<div>
{/* printing all props */}
<h1>
{this.props.arrayProp}
<br />
{this.props.stringProp}
<br />
{this.props.numberProp}
<br />
{this.props.boolProp}
<br />
</h1>
</div>
);
}
}
// Validating prop types
ComponentExample.propTypes = {
arrayProp: PropTypes.array,
stringProp: PropTypes.string,
numberProp: PropTypes.number,
boolProp: PropTypes.bool,
}
// Creating default props
ComponentExample.defaultProps = {
arrayProp: ['Ram', 'Shyam', 'Raghav'],
stringProp: "GeeksforGeeks",
numberProp: "10",
boolProp: true,
}
ReactDOM.render(
<ComponentExample />,
document.getElementById("root")
);
输出:
您可以在上面的程序中看到,我们将名为 numberProp 的道具作为字符串传递,但将其验证为数字。尽管如此,一切都在浏览器上完美呈现,但是我们的浏览器控制台有一条警告消息。这条消息清楚地告诉我们,名为数字道具的道具应该包含一个数值,但是传递的是一个字符串值。你可以去 ReactJS 的官方文档查看道具可以使用的所有有效类型。 注:在最近版本的 React 中 React。PropTypes 被移动到一个不同的包中,为了使用它,我们将不得不单独安装那个包。请访问 https://www.npmjs.com/package/prop-types 链接获取安装说明。
版权属于:月萌API www.moonapi.com,转载请注明出处