REACT PROPS VALIDATION

Kiruthika M

 React Props Validation

  • Props are crucial for passing read-only attributes to React components, and using them correctly is essential for ensuring proper component behavior. If props are not utilized correctly, components may not function as expected. Therefore, validating props is important for enhancing the reliability of React components.
  • Props validation is a valuable tool for developers, helping to prevent future bugs and issues by enforcing correct component usage. It enhances code readability and aids in catching errors by validating the data types of values passed through props using React's PropTypes. While defining components with PropTypes is not mandatory, using them can help you avoid unexpected bugs and improve overall code quality.

Validating Props

    `App.propTypes` is used for props validation in React components. If any props are passed with an invalid type, you will receive warnings in the JavaScript console. Once you have specified the validation patterns, you can then set the `App.defaultProps` to provide default values for those props.

Syntax:

class App extends React.Component {  

          render() {}  

}  

Component.propTypes = { /*Definition */};  

ReactJS Props Validator

    The ReactJS props validator includes the following list of validators.


Example

    In this example, we are creating an `App` component that includes all the necessary props. To perform props validation using `App.propTypes`, you need to import PropTypes into your `App.js` file with the following line: `import PropTypes from 'prop-types'`.

App.js

import React, { Component } from 'react';  

import PropTypes from 'prop-types';  

class App extends React.Component {  

   render() {  

      return (  

          <div>  

              <h1>ReactJS Props validation example</h1>  

              <table>  

                  <tr>  

                      <th>Type</th>  

                      <th>Value</th>  

                      <th>Valid</th>  

                  </tr>  

                <tr>  

                      <td>Array</td>  

                      <td>{this.props.propArray}</td>  

                      <td>{this.props.propArray ? "true" : "False"}</td>  

                  </tr>  

                  <tr>  

                      <td>Boolean</td>  

                      <td>{this.props.propBool ? "true" : "False"}</td>  

                      <td>{this.props.propBool ? "true" : "False"}</td>  

                  </tr>  

                  <tr>  

                      <td>Function</td>  

                      <td>{this.props.propFunc(5)}</td>  

                      <td>{this.props.propFunc(5) ? "true" : "False"}</td>  

                  </tr>  

                  <tr>  

                      <td>String</td>  

                      <td>{this.props.propString}</td>  

                      <td>{this.props.propString ? "true" : "False"}</td>  

                  </tr>  

                  <tr>  

                      <td>Number</td>  

                      <td>{this.props.propNumber}</td>  

                      <td>{this.props.propNumber ? "true" : "False"}</td>  

                  </tr>  

             </table>  

        </div>  

        );  

   }  

}  

App.propTypes = {  

    propArray: PropTypes.array.isRequired,  

    propBool: PropTypes.bool.isRequired,  

    propFunc: PropTypes.func,  

    propNumber: PropTypes.number,  

    propString: PropTypes.string,   

}  

App.defaultProps = {  

    propArray: [1,2,3,4,5],  

    propBool: true,  

    propFunc: function(x){return x+5},  

    propNumber: 2,  

    propString: "Gocourse",  

}  

export default App;  

Main.js

import React from 'react';  

import ReactDOM from 'react-dom';  

import App from './App.js';  

  ReactDOM.render(<App/>, document.getElementById('app'));  

Output


ReactJS Custom Validators

    ReactJS allows you to create a custom validation function for performing specialized validation. The following argument is used to define a custom validation function:

  • Props: It should be the first argument in the function component.
  • PropName: It is the `propName` that will be validated.
  • ComponentName:It is the `componentName` that will be validated again.

Example

var Component = React.createClass({  

App.propTypes = {  

   customProp: function(props, propName, componentName) {  

        if (!item.isValid(props[propName])) {  

          return new Error('Validation failed!');  

        }  

      }  

   }  

})  

Our website uses cookies to enhance your experience. Learn More
Accept !

GocourseAI

close
send