1.输入框

            <Item {...formItemProps} label="留房日期">
{getFieldDecorator('date', {
rules: [{ required: true, message: '请选择留房日期!' }],
})
(<RangePicker style={{ width: '66%', marginRight: '4%' }} value={date} onChange={this.setTotalPrice} />)
}
</Item>
<Item {...formItemProps} label="单价">
{getFieldDecorator('unitPrice', {
rules: [{ required: true, message: '请输入单价' }],
})(<Input placeholder="请输入" value={unitPrice} onChange={this.setTotalPrice} />)}
</Item>
<Item {...formItemProps} label="间数">
{getFieldDecorator('roomNum')(<InputNumber value={roomNum} onChange={this.setTotalPrice} />)}
</Item>

2.计算函数

  /**
* 计算总价:保留几位小数
* 总价=单价[unitPrice]*留芳天数[date]*间数[roomNum]
* 留房天数=留房天数:(留房结束时间-留房开始时间)+1
*/
setTotalPrice = (e) => {
const {
form:{
setFieldsValue
}
} = this.props
let {
unitPrice,
date,
roomNum,
} = this.state if(e.target){
if(e.target.id === 'unitPrice'){
unitPrice = e.target.value
}else{
roomNum = e.target.value
}
this.setState({
[e.target.id]: e.target.value
})
}else if(typeof(e) === 'number'){
roomNum = e
this.setState({
roomNum: e
})
}else{
const dateData = [e[0].format('YYYY-MM-DD'), e[1].format('YYYY-MM-DD')]
date = dateData
this.setState({
date: dateData
})
} if(unitPrice === '' || unitPrice === null || date === [] || date === null || roomNum === '' || roomNum === null) {
this.setState({totalPrice: ''})
setFieldsValue({ totalPrice: '' })
return
} const roomNumInt = parseInt(roomNum, 10)
const unitPriceFloat = parseFloat(unitPrice)
const leaveDayNum = getAllDate(date[0], date[1]).length
const totalPrices = (roomNumInt*unitPriceFloat*leaveDayNum).toFixed(2).toString()
this.setState({ totalPrice: totalPrices})
setFieldsValue({ totalPrice: totalPrices })
}

React 根据条件自动计算的更多相关文章

  1. &&运算符,三木运算符与React的条件渲染

    在使用react框架的时候中往往会遇到需要条件渲染的情形,这时候,许多人会设想采用if语句来实现,比如下面,当满足条件condition时,conditonRender渲染组件ComponentA,当 ...

  2. React中条件渲染

    17==> 条件渲染 state初始化一般写在构造器当中 CharShop.js如下 import React, { Component } from "react"; ex ...

  3. React 组件条件渲染的几种方式

    一.条件表达式渲染 (适用于两个组件二选一的渲染) render() { const isLoggedIn = this.state.isLoggedIn; return ( <div> ...

  4. 【译】在React中实现条件渲染的7种方法

    原文地址:https://scotch.io/tutorials/7-ways-to-implement-conditional-rendering-in-react-applications 借助R ...

  5. react初始

    一.一些基础概念 1.框架:基于整个项目的 2.库:在某个模块中单独使用,轻量级的 在vue中,DOM的操作时DOM指令调用js 在react中,所有的DOM 渲染都是由JS完成的 组件基于视图 模块 ...

  6. react 教程—核心概念

    react 核心概念  : https://react.docschina.org/docs/getting-started.html(官网) 或  https://www.w3cschool.cn/ ...

  7. react第三方库

    作者:慕课网链接:https://www.zhihu.com/question/59073695/answer/1071631250来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  8. 写react项目需要注意的

    key应该是稳定的,且唯一的,尽量不要用索引作为key 都知道React组件渲染列表时需要为每个列表元素分配一个在列表中独一无二的key,key可以在DOM中的某些元素被增加或删除视乎帮助React识 ...

  9. react初探(一)之JSX、状态(state)管理、条件渲染、事件处理

    前言: 最近收到组长通知我们项目组后面新开的项目准备统一技术栈为react,目前我的情况是三大框架只会angular和Vue.在实际项目中只使用过一次angular5,其余项目都是使用Vue写的.写篇 ...

随机推荐

  1. centos7 安装 ffmpeg

    升级系统 yum install epel-release -yyum update -y 安装Nux Dextop Yum源 由于centos 没有官方软件包,我们可以使用第三方YUM源(Nux D ...

  2. mysql数据库之事务和隔离级别

    事务和并发执行目的: 1.提高吞吐量,资源利用率 2.减少等待时间 连接管理器:接受请求/创建线程/认证用户/建立安全连接 并发控制:任何时候,只要有两个以上的用户试图读写同时一个文件/数据,都会带来 ...

  3. 04、rpm+yum+tar解压

    Linux 下安装软件: 1.rpm 软件包的安装 一般安装都用 rpm -ivh 包路径及名字 如:rpm -ivh /soft/RealPlayer11GOLD.rpm   --安装/soft下 ...

  4. Linux(Centos7.6)下安装Gitlab详细教程

    Gitlab搭建操作步骤: 1.查看Linux系统版本确认gitlab需要使用的安装包类型 使用命令:cat /etc/redhat-release CentOS Linux release 7.6. ...

  5. 混合高斯模型(Gaussian mixture model, GMM)

    1. 前言 这就是为什么我要学习一下二维高斯分布的原因: 总感觉数学知识不够用呐,顺带把混合高斯模型也回顾一下. 2. 单高斯模型(Gaussian single model, GSM) 2.1 一维 ...

  6. 201871010135 张玉晶 《2019面向对象程序设计(java)课程学习进度条》

    <2019面向对象程序设计(java)课程学习进度条> 周次 (阅读/编写)代码行数 发布博客量/评论他人博客数量 课余学习时间(小时) 学习收获最大的程序 阅读或编译让我 第一周 25/ ...

  7. windows命令行模式打开目录

    cmd命令行里面,打开当前目录方式如下: explorer .

  8. btcWallet系列之一-grpc模块

    btcwallet对外服务 btcwallet除了像btcd对外提供rpc服务以外,还提供了grpc服务,同时grpc采用的是protobuf来实现. 这方便与不同语言进行交互,降低客户端代码编写量. ...

  9. Kinect v2控制鼠标原理分析和源码

    https://blog.csdn.net/baolinq/article/details/54381284 此程序为利用Kinect v2实现用手指隔空控制鼠标,是我另一个项目的一部分,因为在另外那 ...

  10. [ZJJOI2013]K大数查询 整体二分

    [ZJJOI2013]K大数查询 链接 luogu 思路 整体二分. 代码 #include <bits/stdc++.h> #define ll long long using name ...