Prevents error when item prop is not set

Allows setting custom value and defaultValue
This commit is contained in:
Vlad
2018-02-06 20:29:33 -05:00
parent f9204f289f
commit 243ed9d61b

View File

@@ -2,9 +2,19 @@ import React from 'react';
const FormFieldText = React.createClass({ const FormFieldText = React.createClass({
render() { render() {
let value = this.props.item[this.props.field.name]; const item = this.props.item || {};
if (value === undefined) { let value;
value = this.props.field.defaultValue || ''; let defaultValue;
// value should only be set when onChangeValue is configured
if (this.props.onValueChange instanceof Function) {
value = item[this.props.field.name];
// set value to defaultValue if available
value = (value === undefined && this.props.field.defaultValue) ?
this.props.field.defaultValue : value;
}
// defaultValue should only be set only when value is not set
if (!value && this.props.field.defaultValue) {
defaultValue = this.props.field.defaultValue;
} }
return ( return (
@@ -24,6 +34,7 @@ const FormFieldText = React.createClass({
name={this.props.field.name} name={this.props.field.name}
id={`field_${this.props.field.name}`} id={`field_${this.props.field.name}`}
value={value} value={value}
defaultValue={defaultValue}
placeholder={this.props.field.placeholder} placeholder={this.props.field.placeholder}
onChange={this.props.onValueChange} onChange={this.props.onValueChange}
{...this.props.field.validation} {...this.props.field.validation}