Hashmap Prop Type
The missing hashmap prop type validator for React.
Why ?
This validator is especially useful when you use redux as hashmaps are recommended to structure your data within you state. To know more about state management see https://redux.js.org/docs/faq/OrganizingState.html#how-do-i-organize-nested-or-duplicate-data-in-my-state
Install
This module depends on module prop-types
Run npm install hashmap-prop-type
or yarn add hashmap-prop-type
How to use
import React from 'react';
import PropTypes from 'prop-types';
// import the default function from the package, use require('hashmap-prop-type').default for common js
import hashmapPropType from 'hashmap-prop-type';
class MyComponent extends React.Component {
static propTypes = {
// type your prop with hashmapPropType. You MUST pass a PropType as argument
myHashmap: hashmapPropType(PropTypes.shape({
id: PropTypes.string.isRequired,
myValue: PropTypes.number.isRequired,
})).isRequired;
};
render() {
const { myHashmap } = this.props;
return (
<div>{Object.keys(myHashmap).map(key => <span key={key}>{myHashmap[key].myValue}</span>}</div>
);
}
}
class App extends React.Component {
render() {
// the hashmap to validate
const myHashmap = {
'ddaf34cd-f31b-471b-ae23-6cb2729b580b': {
id: 'ddaf34cd-f31b-471b-ae23-6cb2729b580b',
myValue: 42,
},
'6298edc8-c679-47fa-b52e-60c032eb744d': {
id: '6298edc8-c679-47fa-b52e-60c032eb744d',
myValue: 1234,
},
};
return <MyComponent myHashmap={myHashmap} />
}
}