0

我想在 ReferenceInput onChange 事件时为 DisabledInput 设置值。我

export const RegistersCreate=(props) => (
  <Create {...props}>
    <SimpleForm>
      <ReferenceInput source='member_id' reference='members' allowEmpty validate={required}>
        <SelectInput source='name'/>
      </ReferenceInput>
      <ReferenceInput source='package_id' reference='packages' allowEmpty validate={required}>
        <SelectInput source='name'/>
      </ReferenceInput>
      <ReferenceInput source='promotion_id' reference='promotions' allowEmpty>
        <SelectInput source='name'/>
      </ReferenceInput>
      <DateInput source='date_from' validate={required}/>
      <DateInput source='date_to' validate={required}/>
      <DisabledInput source='amount'/>
    </SimpleForm>
  </Create>
); // RegistersCreate
4

2 回答 2

2

但上面的建议并不完美,我尝试使用 TextInputs (没有像你一样的 ReferenceInput)并编写了简单的类:

import React from 'react';
import { Field } from 'redux-form';
import { 
  TextInput,
  required,
} from 'admin-on-rest';

export class ValueField extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      val1: parseInt(this.props.record.money_amount, 10),
      val2: parseInt(this.props.record.credit_limit, 10),
    };
  }

  render(){
    return (
      <div>
        <Field name="money_amount" validate={required} component={TextInput} onChange={(e) => this.setState({ val1: parseInt(e.target.value, 10) }) }/>
        <Field name="credit_limit" component={TextInput} onChange={(e) => this.setState({ val2: parseInt(e.target.value, 10) }) } />
        <span>{this.state.val1 + this.state.val2}</span>
      </div>
    );
  };
}

export default ValueField;

并导入到resources.js

import ValueField from './ValueField';

...并将编辑视图添加为:

<ValueField />

在我的情况下,有money_amountcredit_limit领域。我需要计算这些字段的总和。

于 2017-06-13T16:02:35.660 回答
0

aor 命令为依赖于指定字段的字段创建了指定组件。希望它可以帮助你。请查看链接: https ://github.com/marmelab/aor-dependent-input

于 2017-06-13T10:33:41.487 回答