Redux Resource Prop Types

npm version gzip size

A collection of prop-types objects.

Trying to migrate from v2 of this library? Check out the migration guide.

Installation

Install redux-resource-prop-types with npm:

npm install redux-resource-prop-types --save

Then, import the prop types that you need:

import { resourcesPropType } from 'redux-resource-prop-types';

Usage

If you're using React, refer to the Typechecking with PropTypes guide on how to use the exported prop types. If you're not using React, refer to the documentation of the prop-types library.

We recommend using the prop types in this library to build your own prop types, which you can reuse throughout your application.

idPropType

Validates a single resource ID.

Tip: This prop type requires that your IDs be either strings or numbers.

import PropTypes from 'prop-types';
import { idPropType } from 'redux-resource-prop-types';

MyComponent.propTypes = {
  selectedBookIds: PropTypes.arrayOf(idPropType).isRequired
};

mapStateToProps(state) {
  return {
    selectedBookIds: state.books.selectedIds
  };
}

statusPropType

Validates the object returned by getStatus.

import { getStatus } from 'redux-resource';
import { statusPropType } from 'redux-resource-prop-types';

MyComponent.propTypes = {
  booksReadStatus: statusPropType
};

mapStateToProps(state) {
  return {
    bookReadStatus: getStatus(state, 'books.meta[23].readStatus');
  };
}

requestStatusPropType

Validates that a value is one of the requestStatuses. Typically, you'll want to usestatusPropType` instead, but this can be useful when verifying the structure of your slice.

import { requestStatusPropType } from 'redux-resource-prop-types';

MyComponent.propTypes = {
  bookRequestStatus: requestStatusPropType
};

mapStateToProps(state) {
  return {
    bookRequestStatus: state.books.meta[23].readStatus
  };
}

resourcePropType

Validates a resource. Similar to PropTypes.shape(), except that it enforces an ID.

import PropTypes from 'prop-types';
import { resourcePropType } from 'redux-resource-prop-types';

MyComponent.propTypes = {
  book: resourcePropType({
    name: PropTypes.string.isRequired,
    releaseYear: PropTypes.number.isRequired
  })
};

mapStateToProps(state) {
  return {
    book: state.books.resources[23]
  };
}

requestPropType

Validates a request. Similar to PropTypes.shape(), except that it enforces ids and status. Typically, you won't need to use this, but it can be useful to verify the structure of your state.

import PropTypes from 'prop-types';
import { requestPropType } from 'redux-resource-prop-types';

MyComponent.propTypes = {
  searchRequest: requestPropType({
    statusCode: PropTypes.number.isRequired
  })
};

mapStateToProps(state) {
  return {
    searchRequest: state.books.requests.search
  };
}

results matching ""

    No results matching ""