添加用户

136 阅读1分钟

新建表单组件:

const CreateForm = props => {
  const { modalVisible, form, handleAdd, handleModalVisible } = props;

  const okHandle = () => {
    form.validateFields((err, fieldsValue) => {
      if (err) return;
      form.resetFields();
      handleAdd(fieldsValue);
    });
  };
    function onChange(value) {
    console.log(`selected ${value}`);
  };
    function onFocus() {
    console.log('focus');
  };
    function onBlur() {
    console.log('blur');
  };
    function onSearch(val) {
    console.log('search:', val);
  };
  return (
    <Modal
      destroyOnClose
      title={createUser}
      visible={modalVisible}
      onOk={okHandle}
      onCancel={() => handleModalVisible()}
    >
      <FormItem
        labelCol={{
          span: 5,
        }}
        wrapperCol={{
          span: 15,
        }}
        label={code}
      >
        {form.getFieldDecorator('code', {
          initialValue: [1],
        })(<Input placeholder="请输入" />)}
      </FormItem>
            <FormItem labelCol={{ span: 5 }} wrapperCol={{ span: 15 }} label={sex}>
        <Select
          showSearch
          style={{ width: 200 }}
          placeholder="选择性别"
          optionFilterProp="children"
          onChange={onChange}
          onFocus={onFocus}
          onBlur={onBlur}
          onSearch={onSearch}
          filterOption={(input, option) =>
            option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
        >
          <Option value="">无</Option>
          <Option value="male">男</Option>
          <Option value="female">女</Option>
        </Select>
      </FormItem>
      
    </Modal>
  );

};

export default Form.create()(CreateForm);

提交表单okHandle函数,通过form.validateFields将数据传给父组件

  const okHandle = () => {
    form.validateFields((err, fieldsValue) => {
      if (err) return;
      form.resetFields();
      handleAdd(fieldsValue);
    });
  };

在父组件定义handleAdd函数


state = {
    modalVisible = false;
}
  handleAdd = fields => {
    const { dispatch } = this.props;
    dispatch({
      type: 'listTableList/add',
      payload: {
        code: fields.code,
        username: fields.username,
        name: fields.name,
        email: fields.email,
        mobile: fields.mobile,
        password: fields.password,
        sex: fields.sex,
        age: fields.age,
        status: fields.status,
        type: fields.type,
        position: fields.position,

      },
    });
    message.success('添加成功');
    this.handleModalVisible();
  };
  
  const parentMethods = {
      handleAdd: this.handleAdd,
      handleModalVisible: this.handleModalVisible,
  };
  
  //引入添加用户组件
  <CreateForm {...parentMethods} modalVisible={modalVisible} />