国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - 在react-antd中彈出層form內容傳遞給父組件的操作

在react-antd中彈出層form內容傳遞給父組件的操作

2021-11-05 19:13zerocher JavaScript

這篇文章主要介紹了在react-antd中彈出層form內容傳遞給父組件的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

我就廢話不多說了,大家還是直接看代碼吧~

子組件:

// jshint esversion:6
import React, { Component } from "react";
import { Form, Input} from "antd";

const FormItem = Form.Item;

class Forms extends Component{
 getItemsValue = ()=>{ //3、自定義方法,用來傳遞數據(需要在父組件中調用獲取數據)
  const values= this.props.form.getFieldsValue();  //4、getFieldsValue:獲取一組輸入控件的值,如不傳入參數,則獲取全部組件的值
  return values;
 }
 render(){
  const { form } = this.props;
  const { getFieldDecorator } = form; //1、將getFieldDecorator 解構出來,用于和表單進行雙向綁定
  return(
   <Form layout="vertical">
    <FormItem label="姓名">
     {getFieldDecorator("name")( //2、getFieldDecorator 的使用方法,這種寫法真的很蛋疼
      <Input />
     )}
    </FormItem>
    <FormItem label="年齡">
     {getFieldDecorator("age")(
      <Input />
     )}
    </FormItem>
    <FormItem label="城市">
     {getFieldDecorator("address")(
      <Input />
     )}
    </FormItem>
   </Form>
  )
 }
}

export default Form.create()(Forms); //創建form實例

父組件:

import React, { Component } from "react";
import { Modal } from "antd";
import Forms from "./Forms"

export default class Modals extends Component {
 handleCancel = () => {
  this.props.closeModal(false);
 }
 handleCreate = () => {
  console.log(this.formRef.getItemsValue());  //6、調用子組件的自定義方法getItemsValue。注意:通過 this.formRef 才能拿到數據
  this.props.getFormRef(this.formRef.getItemsValue());
  this.props.closeModal(false);
 }
 render() {
  const { visible } = this.props;
  return (
   <Modal
    visible={visible}
    okText="保存"
    onCancel={this.handleCancel}
    onOk={this.handleCreate}
   >
    <Forms
     wrappedComponentRef={(form) => this.formRef = form}  //5、使用wrappedComponentRef 拿到子組件傳遞過來的ref(官方寫法)
    />
   </Modal>
  );
 }
}

補充知識:react+antd組件 modal里面包裹使用form表單并獲取提交事件

1 先上圖

在react-antd中彈出層form內容傳遞給父組件的操作

在react-antd中彈出層form內容傳遞給父組件的操作

我這里是點擊“修改密碼”那個按鈕,然后跳到了modal框。(大家這里可以隨便寫一個按鈕,然后給他一個點擊事件讓他可以顯示modal框就好了,我這里著重講解標題的內容)

2 貼代碼

const [visible, setVisible] = useState(false);//antd 控制modal是否顯示
const showMoal=()=>{
 // console.log("showMoal")
 setVisible(true);
}
const handleCancel = e => {
// console.log("cancel:",e);
setVisible(false);
};

function updatePasswordChange(){
 // console.log("0000");
 setVisible(false);
}

//Modal框
 <Modal
  visible={visible}
  onCancel={handleCancel}
  footer={null}
 >
  
  <UpdatePassword updatePasswordChange={updatePasswordChange}></UpdatePassword>
</Modal>


//Form表單的提交事件
const onFinish = values => {
  // console.log("Success:", values); 
  IsUpdatePassword.commit(session.environment,values.newpassword,values.oldpassword,(response, errors) => {
    if (errors) {
     message.error(errors[0].message);
    } else {
     //修改密碼成功
     message.success("修改密碼成功!");
     props.updatePasswordChange();
    }
   },
   (errors) => {
    message.error(errors.source.errors[0].message);
   })
  
};

//Form表單部分
return(
  <>
   <Form
    {...layout}
    name="密碼修改"
    initialValues={{
     remember: true,
    }}
    onFinish={onFinish}
    onFinishFailed={onFinishFailed}
   >
    <Form.Item
     label="舊密碼"
     name="oldpassword"
     rules={[
     {
      required: true,
      message: "請輸入舊密碼!",
     },
     ]}
    >
     <Input.Password />
    </Form.Item>

    <Form.Item
     label="新密碼"
     name="newpassword"
     rules={[
     {
      required: true,
      message: "請輸入新密碼!",
     },
     ]}
     hasFeedback
    >
     <Input.Password />
    </Form.Item>

    <Form.Item
     name="confirm"
     label="確認新密碼"
     dependencies={["newpassword"]}
     hasFeedback
     rules={[
     {
      required: true,
      message: "請確認新密碼!",
     },
     ({ getFieldValue }) => ({
      validator(rule, value) {
      if (!value || getFieldValue("newpassword") === value) {
       return Promise.resolve();
      }
      return Promise.reject("兩次新密碼不一致!");
      },
     }),
     ]}
    >
     <Input.Password />
    </Form.Item>


    {/* <Form.Item {...tailLayout} name="remember" valuePropName="checked">
     <Checkbox>Remember me</Checkbox>
    </Form.Item> */}

    <Form.Item {...tailLayout}>
     <Row>
      <Col span={12}>
       <Button type="primary" htmlType="submit">
       確認
       </Button>
      </Col>
      <Col span={12}>
       <Button onClick={props.updatePasswordChange}>
       取消
       </Button>
      </Col>
     </Row>
    </Form.Item>
   </Form>
  </>
 );
}

小結:

上面的代碼你看起來可能有點亂,而且也運行不起來,那是肯定的!因為我只粘貼了整個項目的一部分。

下面我來點睛:modal里面使用form表單并獲取提交事件主要是使用了modal的**footer={null}**這個特性把外面的“確認取消按鍵隱藏”,然后使用我們自己的Form的“確定取消”按鍵,然后再通過Form的onFinish 事件來提交值和控制modal框的顯示與消失。

就ok了!

以上這篇在react-antd中彈出層form內容傳遞給父組件的操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/zerocher/article/details/81843242

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: www.亚色网.com | 韩日一区| 香蕉依人 | jizzjizzjizz亚洲女 | 欧美黄色一区二区三区 | 日韩av影片 | 国产伦乱| 欧美日韩中文 | 欧美日韩高清 | 婷婷色av | 六月婷操 | 国产视频黄在线观看 | 福利片网址 | 国精品一区二区三区 | 久久a毛片 | 亚洲字幕网| 欧美激情在线播放 | 日韩精品在线一区 | 搞黄网站 | 中文字幕在线视频一区 | 日本精品一区二区三区在线观看视频 | 亚洲91av | 91麻豆蜜桃一区二区三区 | 欧美日韩欧美日韩 | 亚洲成人久久久久 | 91精品国产综合久久久久久 | 亚洲国产精品一区久久av篠田 | 国产精品久久久久久亚洲调教 | 无毛网站 | 国产精品视频入口 | 日韩a在线| 中文乱码一区 | 波多野结衣一区二区三区免费视频 | 免费日韩视频 | 国产欧美日韩综合精品一区二区 | 亚洲欧美aa | 欧美成人一级 | 91精品国产综合久久久久久漫画 | 中文字幕不卡在线观看 | 国产精品三级视频 | 福利片在线免费观看 |