Validating properties
Before we look at storing data, there is another habit I'd like to share with you. The components we created in the last chapter work well together, but our aim is to make each component self-contained. We want others to be able to reuse our components, but they will encounter problems if they don't know which properties our components expect.
Consider what would happen if we used PageAdmin
like this:
ReactDOM.render(
<PageAdmin backend="ajax" />,
document.querySelector(".react")
);
Faced with this component, and no documentation, it might be tempting to substitute a Backend
object with some other configuration data. This looks reasonable to someone unfamiliar with the component. And, without a careful study of all our components, we can't expect others to know what those properties should be.
We can protect against this situation by adding property validation. Let's add some validation to PageEd
itor
:
PageEditor.propTypes = { "id": React.PropTypes.number...