当下拉值为 时想要一个新的文本字段others
,但必须更改变量,因为building_type
将others
值放入新的文本字段中。在这种情况下,在哪里以及如何使两个变量相等?
import React from 'react'
import { connect } from 'react-redux'
import { reduxForm } from 'redux-form'
import { StandardForm, TextField, UsStatesSelectField, SelectField } from './../forms'
import { loadProperty, saveProperty } from './../../models/properties'
const validate = values => {
const required = value => value ? null : 'Required'
const errors = {}
errors.name = required(values.name)
errors.street_address = required(values.street_address)
errors.city = required(values.city)
errors.state = required(values.state)
errors.zip = required(values.zip)
errors.building_type = required(values.building_type)
return errors
}
const PropertyInfoForm = reduxForm({
form: 'propertyInfo',
fields: ['name', 'street_address', 'city', 'state', 'zip', 'building_type', 'building_other_type'],
validate
})(React.createClass({
render() {
return (
<StandardForm {...this.props} title="Property Info" resetButton="Reset">
<TextField {...this.props.fields.name} label="Property Name" />
<TextField {...this.props.fields.street_address} label="Property Address" />
<div className="three fields">
<TextField {...this.props.fields.city} label="City" />
<UsStatesSelectField {...this.props.fields.state} label="State" />
<TextField {...this.props.fields.zip} label="Zip Code" />
</div>
<SelectField {...this.props.fields.building_type}
label="Please select a Building Type for the junctionbox"
options={[
['office', 'Office'],
['private_home', 'Private Home'],
['residential', 'Residential'],
['retail', 'Retail'],
['restaurant', 'Restaurant'],
['school', 'School'],
['townhouse', 'Townhouse'],
['warehouse', 'Warehouse'],
['other', 'Other']
]}
/>
{((this.props.fields.building_type.value) === 'other') ? (
<TextField {...this.props.fields.building_other_type} label="Please Specify Other Building Type" />
) : ''}
</StandardForm>
)
}
}))
export default connect(
(state, ownProps) => ({
property: state.entities.property[ownProps.params.propertyId]
}),
dispatch => ({
dispatch
})
)(({ dispatch, property }) => (
<PropertyInfoForm
initialValues={property}
onSubmit={(values) => dispatch(saveProperty(property.id, values)).then(_ => dispatch(loadProperty(property.id)))}
/>
))