Search
 
SCRIPT & CODE EXAMPLE
 

JAVASCRIPT

install proptypes react

npm install --save prop-types
Comment

reactnode prop-types

import PropTypes from 'prop-types';

MyComponent.propTypes = {
  // You can declare that a prop is a specific JS type. By default, these
  // are all optional.
  optionalArray: PropTypes.array,
  optionalBool: PropTypes.bool,
  optionalFunc: PropTypes.func,
  optionalNumber: PropTypes.number,
  optionalObject: PropTypes.object,
  optionalString: PropTypes.string,
  optionalSymbol: PropTypes.symbol,

  // Anything that can be rendered: numbers, strings, elements or an array
  // (or fragment) containing these types.
  optionalNode: PropTypes.node,

  // A React element.
  optionalElement: PropTypes.element,

  // A React element type (ie. MyComponent).
  optionalElementType: PropTypes.elementType,

  // You can also declare that a prop is an instance of a class. This uses
  // JS's instanceof operator.
  optionalMessage: PropTypes.instanceOf(Message),

  // You can ensure that your prop is limited to specific values by treating
  // it as an enum.
  optionalEnum: PropTypes.oneOf(['News', 'Photos']),

  // An object that could be one of many types
  optionalUnion: PropTypes.oneOfType([
    PropTypes.string,
    PropTypes.number,
    PropTypes.instanceOf(Message)
  ]),

  // An array of a certain type
  optionalArrayOf: PropTypes.arrayOf(PropTypes.number),

  // An object with property values of a certain type
  optionalObjectOf: PropTypes.objectOf(PropTypes.number),

  // An object taking on a particular shape
  optionalObjectWithShape: PropTypes.shape({
    color: PropTypes.string,
    fontSize: PropTypes.number
  }),

  // An object with warnings on extra properties
  optionalObjectWithStrictShape: PropTypes.exact({
    name: PropTypes.string,
    quantity: PropTypes.number
  }),   

  // You can chain any of the above with `isRequired` to make sure a warning
  // is shown if the prop isn't provided.
  requiredFunc: PropTypes.func.isRequired,

  // A required value of any data type
  requiredAny: PropTypes.any.isRequired,

  // You can also specify a custom validator. It should return an Error
  // object if the validation fails. Don't `console.warn` or throw, as this
  // won't work inside `oneOfType`.
  customProp: function(props, propName, componentName) {
    if (!/matchme/.test(props[propName])) {
      return new Error(
        'Invalid prop `' + propName + '` supplied to' +
        ' `' + componentName + '`. Validation failed.'
      );
    }
  },

  // You can also supply a custom validator to `arrayOf` and `objectOf`.
  // It should return an Error object if the validation fails. The validator
  // will be called for each key in the array or object. The first two
  // arguments of the validator are the array or object itself, and the
  // current item's key.
  customArrayProp: PropTypes.arrayOf(function(propValue, key, componentName, location, propFullName) {
    if (!/matchme/.test(propValue[key])) {
      return new Error(
        'Invalid prop `' + propFullName + '` supplied to' +
        ' `' + componentName + '`. Validation failed.'
      );
    }
  })
};
Comment

PropTypes

import PropTypes from "prop-types";

MyComponent.propTypes = {
  name: PropTypes.string,
  id: PropTypes.number.isRequired,
  img: PropTypes.string
  grades: PropTypes.arrayOf(PropTypes.number),
  friends: PropTypes.arrayOf(
    PropTypes.shape({
      id: PropTypes.number,
    })
  ),
  list: PropTypes.arrayOf(PropTypes.any),
};

MyComponent.defaultProps = {
  img: "https://picsum.phones/200/300",
}
Comment

react proptypes

import PropTypes from 'prop-types';

class Greeting extends React.Component {
  render() {
    return (
      <h1>Hello, {this.props.name}</h1>
    );
  }
}

Greeting.propTypes = {
  name: PropTypes.string
};
Comment

react using proptypes

import React from 'react';
import PropTypes from 'prop-types';

const Example = (props) => {
  return (
    <div>
      <p>Some prop: {props.some}</p>
      <p>Other prop: {props.other}</p>
    </div>
  );
};

Example.propTypes = {
  some: PropTypes.string.isRequired,
  other: PropTypes.number.isRequired
};

export default Example;
Comment

react proptypes example

// proptypes using class component
Detaljer.PropTypes = {
  detaljer: PropTypes.string.isRequired,
  feilkode: PropTypes.string,
  removeEvent: PropTypes.string.isRequired
};

// proptypes using function component
Detaljer.propTypes = {
  detaljer: PropTypes.string.isRequired,
  feilkode: PropTypes.string,
  removeEvent: PropTypes.string.isRequired
};
Comment

import prop-types

import PropTypes from 'prop-types'; // ES6var PropTypes = require('prop-types'); // ES5 with npm
Comment

prop type of react component

type OscarProp = {
  children: React.ReactNode;
};
Comment

Type Props Example

function App() {
return (<div>
<Message text="rando text" />
    </div>
);
}

export default App;

type MessageProps ={
text: number

}

function Message({text}: MessageProps)
{

  return(<div>
  {text}
  </div>)
}

/*pop quiz, will the example below work?

type MessageProps ={
text: number

}
 
Answer: no, will produce an error due to wrong type
*/
Comment

prop type of react component

type OscarProp = {
  children: React.ReactNode;
};
Comment

prop types in react

import PropTypes from 'prop-types'

function HelloWorldComponent({ name }) {
  return (
    <div>Hello, {name}</div>
  )
}

HelloWorldComponent.propTypes = {
  name: PropTypes.string
}

export default HelloWorldComponent
Comment

set propTypes

itemName.propTypes = {
  props: PropTypes.dataType.isRequired
};
Comment

proptypes for a react component

//You can now use `PropTypes.elementType`
// to validate for Component type props
Comment

type for object props

type Person = {
  name: {
    first: string;
    last: string;
  };
};
Comment

proptypes

import PropTypes from 'prop-types'; // ES6
var PropTypes = require('prop-types'); // ES5 with npm
Comment

PREVIOUS NEXT
Code Example
Javascript :: node express 
Javascript :: change node bash root 
Javascript :: Load JSON from file robotframework 
Javascript :: javascript how do I measure the time of the loop 
Javascript :: scroll to top vue 
Javascript :: jquery public function 
Javascript :: array push 
Javascript :: foreach and replace item based on condition 
Javascript :: expo cli vs react native cli 
Javascript :: hide console log level in js 
Javascript :: js addeventlistener input search phone 
Javascript :: how to make html with jquery 
Javascript :: sort method js 
Javascript :: apollo graphql 
Javascript :: how to reload automaticaly in vue 
Javascript :: react state not updating immediately 
Javascript :: sort array ij js 
Javascript :: contact form angular material 
Javascript :: get contents between tags javascript 
Javascript :: auto delete data from mongobd ,set time , mongoose model, 
Javascript :: form serialze submit button 
Javascript :: capitalize first letter of a string 
Javascript :: react js charts with camvas 
Javascript :: google drive show size folder 
Javascript :: react native section list sort by alphabet 
Javascript :: array.map 
Javascript :: dropzone upload on one file 
Javascript :: how to get 3rd li using jquery 
Javascript :: angular 11 support versions nodejs 
Javascript :: react call bind apply 
ADD CONTENT
Topic
Content
Source link
Name
9+2 =