diff --git a/src/components/RenderForm.jsx b/src/components/RenderForm.jsx index cc91232..8c80219 100644 --- a/src/components/RenderForm.jsx +++ b/src/components/RenderForm.jsx @@ -63,17 +63,25 @@ var RenderForm = React.createClass({ } }, - componentWillMount() { - if (this.props.form instanceof Form) { - this.form = this.props.form + setupForm: function(props) { + if (props.form instanceof Form) { + this.form = props.form } else { - this.form = new this.props.form(object.extend({ + this.form = new props.form(object.extend({ onChange: this.forceUpdate.bind(this) - }, getProps(this.props, Object.keys(formProps)))) + }, getProps(props, Object.keys(formProps)))) } }, + componentWillMount() { + this.setupForm(this.props); + }, + + componentWillReceiveProps: function(nextProps) { + this.setupForm(nextProps); + }, + getForm() { return this.form },