diff --git a/src/core/components/param-body.jsx b/src/core/components/param-body.jsx index 20de5dc7..31c0ea68 100644 --- a/src/core/components/param-body.jsx +++ b/src/core/components/param-body.jsx @@ -47,10 +47,9 @@ export default class ParamBody extends PureComponent { updateValues = (props) => { let { specSelectors, pathMethod, param, isExecute, consumesValue="" } = props - let parameter = (specSelectors ? specSelectors.parameterWithMetaByIdentity(pathMethod, param) : fromJS({})) || param let isXml = /xml/i.test(consumesValue) let isJson = /json/i.test(consumesValue) - let paramValue = isXml ? parameter.get("value_xml") : parameter.get("value") + let paramValue = isXml ? param.get("value_xml") : param.get("value") if ( paramValue !== undefined ) { let val = !paramValue && isJson ? "{}" : paramValue @@ -79,7 +78,7 @@ export default class ParamBody extends PureComponent { this._onChange(value, isXml) } - _onChange = (val, isXml) => { (this.props.onChange || NOOP)(this.props.param, val, isXml) } + _onChange = (val, isXml) => { (this.props.onChange || NOOP)(val, isXml) } handleOnChange = e => { const {consumesValue} = this.props diff --git a/src/core/components/parameter-row.jsx b/src/core/components/parameter-row.jsx index fe3f9efd..50116db6 100644 --- a/src/core/components/parameter-row.jsx +++ b/src/core/components/parameter-row.jsx @@ -9,6 +9,7 @@ export default class ParameterRow extends Component { static propTypes = { onChange: PropTypes.func.isRequired, param: PropTypes.object.isRequired, + rawParam: PropTypes.object.isRequired, getComponent: PropTypes.func.isRequired, fn: PropTypes.object.isRequired, isExecute: PropTypes.bool, @@ -56,9 +57,9 @@ export default class ParameterRow extends Component { } } - onChangeWrapper = (value) => { - let { onChange, param } = this.props - return onChange(param, value) + onChangeWrapper = (value, isXml) => { + let { onChange, rawParam } = this.props + return onChange(rawParam, value, isXml) } setDefaultValue = () => { @@ -101,7 +102,7 @@ export default class ParameterRow extends Component { param={param} consumes={ specSelectors.operationConsumes(pathMethod) } consumesValue={ specSelectors.contentTypeValues(pathMethod).get("requestContentType") } - onChange={onChange} + onChange={this.onChangeWrapper} onChangeConsumes={onChangeConsumes} isExecute={ isExecute } specSelectors={ specSelectors } diff --git a/src/core/components/parameters.jsx b/src/core/components/parameters.jsx index fa77c4f5..e5ce323b 100644 --- a/src/core/components/parameters.jsx +++ b/src/core/components/parameters.jsx @@ -101,6 +101,7 @@ export default class Parameters extends Component { specPath={specPath.push(i.toString())} getComponent={ getComponent } getConfigs={ getConfigs } + rawParam={ parameter } param={ specSelectors.parameterWithMetaByIdentity(pathMethod, parameter) } key={ `${parameter.get( "in" )}.${parameter.get("name")}` } onChange={ this.onChange }