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. 阿里云查看本服务器 公网ip地址 命令

    阿里云的服务器用命令ifconfig查看的是本机内网地址 那如何访问公网地址呢? curl httpbin.org/ip

  2. 【Cookie】java.lang.IllegalArgumentException An invalid character [32] was present in the Cookie value

    创建时间:6.30 java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie va ...

  3. [PAT] 目录

    题号  PAT Basic  PAT Advaced  PAT Top 1001 害死人不偿命的(3n+1)猜想     1002 写出这个数     1003 我要通过!     1004 成绩排名 ...

  4. opencv 程序

    IplImage结构中的一个元素:struct _IplROI *roi; //图像感兴趣区域,当该值非空时,只对该区域进行处理 .   ROI :Region of Interest,表示感兴趣的区 ...

  5. Linux-grep,awk,sed

    grep 参考1:https://www.cnblogs.com/ITtangtang/p/3950497.html sed 参考:https://www.cnblogs.com/wangqiguo/ ...

  6. AtCoder Grand Contest 038题解

    好久没更了 写点东西吧= = A 01Matrix 简单构造 左上角和右下角染成1其他染成0即可 #include<bits/stdc++.h> #define ll long long ...

  7. ESA2GJK1DH1K升级篇: STM32远程乒乓升级,基于(WIFI模块AT指令TCP透传方式),定时访问升级

    前言 学习此代码所需: 实现功能概要 定时使用http访问云端的程序版本,如果版本不一致,然后通过http下载最新的升级文件,实现升级. 测试准备工作(默认访问我的服务器,改为自己的服务器,请看后面说 ...

  8. axios二次封装

    import axios from "axios" //请求拦截器 axios.interceptors.request.use(function (config) { retur ...

  9. 【LG2605】[ZJOI2010]基站选址

    [LG2605][ZJOI2010]基站选址 题面 洛谷 题解 先考虑一下暴力怎么写,设\(f_{i,j}\)表示当前\(dp\)到\(i\),且强制选\(i\),目前共放置\(j\)个的方案数. 那 ...

  10. 基于web公交查询系统自我安排进度

    这周完成站点信息管理