当前位置: 首页 > news >正文

网站怎么添加百度地图抖音代运营套餐价格表

网站怎么添加百度地图,抖音代运营套餐价格表,seo的主要策略和流程内容,免费的建站平台前言 在现代前端开发中#xff0c;React 已经成为了最受欢迎的 JavaScript 库之一。而在复杂的应用中#xff0c;不同组件之间的数据传递问题显得尤为关键。在本文中#xff0c;我们将探讨一种高效的方法#xff0c;即如何利用弹框和高阶组件特性来实现 React 组件间的数据…前言 在现代前端开发中React 已经成为了最受欢迎的 JavaScript 库之一。而在复杂的应用中不同组件之间的数据传递问题显得尤为关键。在本文中我们将探讨一种高效的方法即如何利用弹框和高阶组件特性来实现 React 组件间的数据传递。我们将通过一个具体的业务场景来深入讲解 业务场景介绍 假设我们正在开发一个项目管理系统其中一个关键功能是发起项目立项审批。在主页面上用户可以看到一张项目列表每个项目都带有一个“发起审批”按钮。点击该按钮后一个弹框将显示允许用户选择公司部门并查看相关的审批流程。在这个过程中我们需要实现从主页面向弹框组件传递数据并根据用户的选择加载相关的审批流程。 主页面代码 首先我们有一个名为 ProjectManagement 的主页面组件。在这个组件中我们为每个项目都添加了一个“发起审批”按钮点击该按钮会触发 handleGoApprove 方法将项目数据传递给弹框组件弹框组件点击确认按钮触发handleApproveOk方法调用后端接口。 // 主页面代码 import React, { Component } from react; import {Table,Form,Button,Input,Collapse,Pagination,Divider,message,Modal, } from antd; // ... const { Column } Table; const { Panel } Collapse; const { confirm } Modal; class ProjectManagement extends Component {// ... 其他状态和方法 ...// 处理发起审批按钮点击handleGoApprove (row) {// 更新状态传递数据到弹框组件this.setState({currentRowData: Object.assign({}, row),approveModalFormVisible: true,// ...});};// 处理子组件确认提交按钮handleApproveOk (_) {// 获取子组件的propsconst { form } this.approveItemFormRef.props;form.validateFields((err, fieldsValue) {if (err) {return;}// 获取API所需的参数const projectId form.getFieldValue(projectId);const selectedCompany form.getFieldValue(departCompany);const values {...fieldsValue,projectId: projectId,selectedCompany: selectedCompany,};// 调用APIthis.setState({ approveModalFormLoading: true });toApprove(values).then((response) {form.resetFields();this.setState({ approveModalFormVisible: false, approveModalFormLoading: false });message.success(发起成功!);this.fetchData();}).catch((e) {message.success(发起失败,请重试!);this.setState({ approveModalFormLoading: false });});});};// ... 其他渲染逻辑 ...render() {return (div classNameapp-container{/* 表格代码 */}Table{/* 列定义 */}Columnrender{(text, row) (ButtononClick{() this.handleGoApprove(row)}发起立项审批/Button)}//Table{/* 弹框 */}Modaltitle发起立项审批visible{this.state.approveModalFormVisible}onCancel{this.handleCancel}onOk{this.handleApproveOk}// ...{/* 弹框内容 */}ApproveModalcurrentRowData{this.state.currentRowData}wrappedComponentRef{(formRef) (this.approveItemFormRef formRef)}// ...//Modal/div);} } 弹框组件代码 接下来让我们看看弹框组件 ApproveModal 的代码。在 componentWillMount 生命周期中我们根据传入的 currentRowData 获取项目数据并在状态中初始化相关信息。然后通过 getDepartLevelByUser 方法获取部门层级信息并将数据存储在状态中。 class ApproveModal extends Component {state {userParentList: [],departCompanyList: [],selectedCompany: , // 用于存储选中的公司projectId: ,}componentWillMount() {const { currentRowData } this.props;const projectId currentRowData.id;const departmentManager currentRowData.departmentManager;// 根据当前行数据初始化状态this.setState({projectId: projectId,});// 获取部门层级信息并初始化状态this.getDepartLevelByUser(departmentManager);}getDepartLevelByUser (value) {// 使用API获取部门层级数据getDepartLevelByUser(value).then((response) {const { data } response.data;this.setState({departCompanyList: data,},() {// 在状态更新后检查 departCompanyList 是否有记录if (this.state.departCompanyList.length 0) {// 默认填充第一条记录的值const selectedCompany this.state.departCompanyList[0].company;this.setState({selectedCompany: selectedCompany,},() {// 在设置 selectedCompany 后触发 onChange 事件this.handleDepartCompanySelect(selectedCompany);});}});});}// ... 其他逻辑 ...render() {// 使用 getFieldDecorator 处理表单const { getFieldDecorator } this.props.form;const { projectId, selectedCompany, userParentList } this.state;return (divFormForm.Item{getFieldDecorator(departCompany, {initialValue: selectedCompany,// ...})(Select onChange{this.handleDepartCompanySelect} value{selectedCompany}{/* 渲染部门选项 */}{departCompanyList.map((item) (Select.Option key{item.company} value{item.company}{item.company}/Select.Option))}/Select)}/Form.Item{/* 审批流程 */}div style{{ display: this.state.selectedCompany ? flex : none, alignItems: flex-start }}div style{{ marginRight: 20px }}h4 style{{ margin: 0 }}【审批流程】:/h4/divTimeline style{{ flex: 1 }}{userParentList userParentList.length 0 userParentList.map((user, index) (Timeline.Item key{user.key} colorgreendiv{user.value}/div/Timeline.Item))}/Timeline/div/Form/div);} }// 利用高阶组件HOC封装表单 const WrappedApproveModal Form.create()(ApproveModal); export default WrappedApproveModal; 数据传递原理 在本例中数据传递是通过主页面状态传递给弹框组件的 currentRowData 属性实现的。弹框组件可以根据传入的数据进行初始化并根据用户选择加载相应的审批流程。另外弹框组件还利用高阶组件 Form.create() 来处理表单从而更方便地管理表单域的值和状态。 总结 通过这个实际的业务场景我们深入探讨了如何利用弹框和高阶组件特性来实现 React 组件间的数据传递。我们从主页面传递数据到弹框组件再到表单域逐步分析了数据传递和状态管理的过程。这种模式可以帮助你更好地组织代码、实现数据流动并提高项目的可维护性和扩展性。弹框组件内部的 render 方法使用了 getFieldDecorator 处理表单这让我们可以轻松地管理表单域的值和状态。 通过以上代码和解释我们了解了一个典型的组件间数据传递方式以及如何在 React 中利用弹框和高阶组件特性来实现这种方式。这个方法可以应用于许多场景帮助我们更好地组织代码、处理数据流动从而构建更出色的应用程序。 如果你在实际项目中遇到了类似的问题不妨尝试这个方法来处理组件间的数据传递。希望这篇文章对你有所帮助如果你有任何疑问或想法请随时在下方留言。感谢阅读 结束语只有责任才能让我们的幸福变得厚重
文章转载自:
http://www.morning.kwz6232.cn.gov.cn.kwz6232.cn
http://www.morning.hdtcj.cn.gov.cn.hdtcj.cn
http://www.morning.msfqt.cn.gov.cn.msfqt.cn
http://www.morning.dgknl.cn.gov.cn.dgknl.cn
http://www.morning.cjxqx.cn.gov.cn.cjxqx.cn
http://www.morning.wdrxh.cn.gov.cn.wdrxh.cn
http://www.morning.gthwz.cn.gov.cn.gthwz.cn
http://www.morning.wkmyt.cn.gov.cn.wkmyt.cn
http://www.morning.kzpy.cn.gov.cn.kzpy.cn
http://www.morning.srbsr.cn.gov.cn.srbsr.cn
http://www.morning.wnywk.cn.gov.cn.wnywk.cn
http://www.morning.mfjfh.cn.gov.cn.mfjfh.cn
http://www.morning.dzqr.cn.gov.cn.dzqr.cn
http://www.morning.mzskr.cn.gov.cn.mzskr.cn
http://www.morning.rzbcz.cn.gov.cn.rzbcz.cn
http://www.morning.nqpxs.cn.gov.cn.nqpxs.cn
http://www.morning.hwbmn.cn.gov.cn.hwbmn.cn
http://www.morning.qnjcx.cn.gov.cn.qnjcx.cn
http://www.morning.dzyxr.cn.gov.cn.dzyxr.cn
http://www.morning.nfccq.cn.gov.cn.nfccq.cn
http://www.morning.gcqs.cn.gov.cn.gcqs.cn
http://www.morning.c7627.cn.gov.cn.c7627.cn
http://www.morning.plqsz.cn.gov.cn.plqsz.cn
http://www.morning.fznj.cn.gov.cn.fznj.cn
http://www.morning.stbfy.cn.gov.cn.stbfy.cn
http://www.morning.mhfbp.cn.gov.cn.mhfbp.cn
http://www.morning.nmbbt.cn.gov.cn.nmbbt.cn
http://www.morning.hrqfl.cn.gov.cn.hrqfl.cn
http://www.morning.ttrdr.cn.gov.cn.ttrdr.cn
http://www.morning.yrpd.cn.gov.cn.yrpd.cn
http://www.morning.gwqq.cn.gov.cn.gwqq.cn
http://www.morning.brbmf.cn.gov.cn.brbmf.cn
http://www.morning.tbksk.cn.gov.cn.tbksk.cn
http://www.morning.krkwp.cn.gov.cn.krkwp.cn
http://www.morning.tsdqr.cn.gov.cn.tsdqr.cn
http://www.morning.bfmq.cn.gov.cn.bfmq.cn
http://www.morning.rghkg.cn.gov.cn.rghkg.cn
http://www.morning.rybr.cn.gov.cn.rybr.cn
http://www.morning.qyxwy.cn.gov.cn.qyxwy.cn
http://www.morning.rgxll.cn.gov.cn.rgxll.cn
http://www.morning.pwhjr.cn.gov.cn.pwhjr.cn
http://www.morning.clnmf.cn.gov.cn.clnmf.cn
http://www.morning.xdmsq.cn.gov.cn.xdmsq.cn
http://www.morning.pjrql.cn.gov.cn.pjrql.cn
http://www.morning.jyknk.cn.gov.cn.jyknk.cn
http://www.morning.yngtl.cn.gov.cn.yngtl.cn
http://www.morning.ns3nt8.cn.gov.cn.ns3nt8.cn
http://www.morning.gqdsm.cn.gov.cn.gqdsm.cn
http://www.morning.sgwr.cn.gov.cn.sgwr.cn
http://www.morning.wdlyt.cn.gov.cn.wdlyt.cn
http://www.morning.hdqqr.cn.gov.cn.hdqqr.cn
http://www.morning.cpnsh.cn.gov.cn.cpnsh.cn
http://www.morning.kzpxc.cn.gov.cn.kzpxc.cn
http://www.morning.kkqgf.cn.gov.cn.kkqgf.cn
http://www.morning.qfplp.cn.gov.cn.qfplp.cn
http://www.morning.llxns.cn.gov.cn.llxns.cn
http://www.morning.lwgrf.cn.gov.cn.lwgrf.cn
http://www.morning.hrpjx.cn.gov.cn.hrpjx.cn
http://www.morning.ckxd.cn.gov.cn.ckxd.cn
http://www.morning.clpdm.cn.gov.cn.clpdm.cn
http://www.morning.wrdlf.cn.gov.cn.wrdlf.cn
http://www.morning.mfzyn.cn.gov.cn.mfzyn.cn
http://www.morning.crsqs.cn.gov.cn.crsqs.cn
http://www.morning.nfbnl.cn.gov.cn.nfbnl.cn
http://www.morning.kjkml.cn.gov.cn.kjkml.cn
http://www.morning.hgtr.cn.gov.cn.hgtr.cn
http://www.morning.ndynz.cn.gov.cn.ndynz.cn
http://www.morning.nbhft.cn.gov.cn.nbhft.cn
http://www.morning.jsrnf.cn.gov.cn.jsrnf.cn
http://www.morning.clfct.cn.gov.cn.clfct.cn
http://www.morning.fksrg.cn.gov.cn.fksrg.cn
http://www.morning.cfpq.cn.gov.cn.cfpq.cn
http://www.morning.mjbnp.cn.gov.cn.mjbnp.cn
http://www.morning.caswellintl.com.gov.cn.caswellintl.com
http://www.morning.nuejun.com.gov.cn.nuejun.com
http://www.morning.llmhq.cn.gov.cn.llmhq.cn
http://www.morning.rlnm.cn.gov.cn.rlnm.cn
http://www.morning.kyfnh.cn.gov.cn.kyfnh.cn
http://www.morning.fndmk.cn.gov.cn.fndmk.cn
http://www.morning.ypbp.cn.gov.cn.ypbp.cn
http://www.tj-hxxt.cn/news/271977.html

相关文章:

  • 网站实名制认证备案手工活外发
  • 绵阳的网站建设公司wordpress+挂马+清除
  • 品牌网站开发远程图片本地化for wordpress
  • 如何组做网站深圳led网站建设
  • 网站设计与建设工作室做期货要看哪些网站
  • 2018企业网站转化率盐城z做网站
  • 做本地网站赚钱吗青浦网站建设 迎鑫
  • 企业建设网站好吗软件项目管理pdf
  • 街区网站建设的意义外贸网站运营是做什么的
  • 宣传图制作网站北京建网站多少钱
  • 所有外包网站建设个普通的网站得多少钱
  • 版面设计网站程序做网站好还是app好
  • 初中网站建设旅游网站策划
  • 河南企业网站排名优化价格如何开网店拼多多
  • 舜元建设 集团 有限公司网站wordpress 总访问统计
  • 网站可以做网站广告小程序商城开发费用
  • 济南制作网站的公司菏泽专业网站开发公司
  • 网站改版建设,有哪些内容hqz行情站
  • 0716网站建设兰州网站怎么建设
  • 三亚h5网站定制开发公司动画制作培训学院
  • 做cpa的电影网站模板建设电影网站点击播放是乱页的
  • 门户网站管理建设天津专业做网站的公司有哪些
  • 如何查询网站的备案信息商城小程序介绍
  • 在工商局网站如果做注销公告网站模板怎么设计软件
  • wordpress支付宝打赏海淀区seo全面优化
  • 泉州免费做网站自己做整个网站的流程
  • 成都专业网站制作建设谷德设计网室内设计案例
  • 仿站小工具使用教程中国专门做生鲜的网站
  • 网站建设栏目结构表个人网站有什么用
  • 一个网站怎么做聚合肇庆cms建站系统