React 根据条件自动计算
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 根据条件自动计算的更多相关文章
- &&运算符,三木运算符与React的条件渲染
		
在使用react框架的时候中往往会遇到需要条件渲染的情形,这时候,许多人会设想采用if语句来实现,比如下面,当满足条件condition时,conditonRender渲染组件ComponentA,当 ...
 - React中条件渲染
		
17==> 条件渲染 state初始化一般写在构造器当中 CharShop.js如下 import React, { Component } from "react"; ex ...
 - React 组件条件渲染的几种方式
		
一.条件表达式渲染 (适用于两个组件二选一的渲染) render() { const isLoggedIn = this.state.isLoggedIn; return ( <div> ...
 - 【译】在React中实现条件渲染的7种方法
		
原文地址:https://scotch.io/tutorials/7-ways-to-implement-conditional-rendering-in-react-applications 借助R ...
 - react初始
		
一.一些基础概念 1.框架:基于整个项目的 2.库:在某个模块中单独使用,轻量级的 在vue中,DOM的操作时DOM指令调用js 在react中,所有的DOM 渲染都是由JS完成的 组件基于视图 模块 ...
 - react 教程—核心概念
		
react 核心概念 : https://react.docschina.org/docs/getting-started.html(官网) 或 https://www.w3cschool.cn/ ...
 - react第三方库
		
作者:慕课网链接:https://www.zhihu.com/question/59073695/answer/1071631250来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...
 - 写react项目需要注意的
		
key应该是稳定的,且唯一的,尽量不要用索引作为key 都知道React组件渲染列表时需要为每个列表元素分配一个在列表中独一无二的key,key可以在DOM中的某些元素被增加或删除视乎帮助React识 ...
 - react初探(一)之JSX、状态(state)管理、条件渲染、事件处理
		
前言: 最近收到组长通知我们项目组后面新开的项目准备统一技术栈为react,目前我的情况是三大框架只会angular和Vue.在实际项目中只使用过一次angular5,其余项目都是使用Vue写的.写篇 ...
 
随机推荐
- Flink流式计算
			
Structured Streaming A stream is converted into a dynamic table. A continuous query is evaluated on ...
 - MySQL数据库(二)--库相关操作、表相关操作(1)、存储引擎、数据类型
			
一.库相关操作 1.创建数据库 (1)语法 create database 数据库 charset utf8; (2)数据库命名规范 可以由字母.数字.下划线.@.#.$ 区分大小写 唯一性 不能使用 ...
 - 使用fio命令查看磁盘iops
			
具体命令: fio -filename=./localhost.2019-05-08.log -direct=1 -iodepth 1 -thread -rw=randrw -ioengine=psy ...
 - docker gitlab-runner的安装
			
参考: Run GitLab Runner in a container 前面介绍了gitlab-ce的安装,下面是gitlab-runner的安装,同样还是安装docker版本. 1.下载 dock ...
 - AI-图像基础知识-01
			
目前人工智能Artificial Intelligence主要分为两大分支: 计算机视常见:Computer Vision,简称CV CV主要是研究如何让机器看懂世界的一种技术,通过各种光 ...
 - java 深copy
			
public static<T> T deepClone(T src) throws IOException, ClassNotFoundException { Object obj = ...
 - Magic Master(2019年南昌网络赛E题+约瑟夫环)
			
目录 题目链接 题意 思路 代码 题目链接 传送门 题意 初始时你有\(n\)张牌(按顺序摆放),每一次操作你将顶端的牌拿出,然后按顺序将上面的\(m\)张牌放到底部. 思路 首先我们发下拿走\(1\ ...
 - destoon搜索伪静态失败解决办法
			
今天给一个朋友调试DT6.0内核的站点,搜索中文出现http 403 forbidden,找了半天,很纳闷,最后一个一个查看源代码总算找到,在此分享给大家! 解决的方法: 1.找到include/sa ...
 - Codeforces Round #135 (Div. 2) D - Choosing Capital for Treeland(两种树形DP)
 - nodejs网络编程
			
通过NodeJS,除了可以编写一些服务端程序来协助前端开发和测试外,还能够学习一些HTTP协议与Socket协议的相关知识,这些知识在优化前端性能和排查前端故障时说不定能派上用场.本章将介绍与之相关的 ...