zoukankan      html  css  js  c++  java
  • table,的输入框改变js组件

    /*
    使用方式如下,与DateEdit使用方式基本一致
    1、引用组件
    2、 <TableDateEdit
            key={record.id + 'start'}                   //key随意指定
            txtValue={record.planStartTime}             //控件需要显示的内容
            rowID={record.id}                           //要更新的数据id
            txtChange={this.txtChange}        //更新数据执行的方法,方法名称随意指定
        />
    3、txtChange = (id, value) => {}        //包含两个参数:id需要更新的数据id,value需要更新的数据值
    */
    import React,{Fragment} from 'react';
    import { Input } from 'antd';
    class TableInputEdit extends React.Component {
        constructor(props) {
            super(props);
            this.state = {
                edit:false
            };
        }
    
        //文本框的值变化
        onInputChange=(event)=>{
          const { rowID,txtChange } = this.props;
          txtChange(rowID,event.target.value);
          this.setState({edit:false});
        }
    
        onSpanClick=()=>{
          this.setState({edit:true});
        }
    
        componentDidUpdate(){
          const { input } = this.refs.txtInput; 
          input.focus();  //当元素获得焦点时(当通过鼠标点击选中元素或通过 tab 键定位到元素时),发生 focus 事件。
        }
    
        render() {
            const { txtValue } = this.props; //传入的值
            const { edit } = this.state;//控制是否编辑
            let inputStyle=edit?{display:'block'}:{display:'none'};
            let spanStyle=edit?{display:'none'}:{cursor:"pointer",display:"block",minWidth:"30px",minHeight:"20px",overflow:"hidden",
            whiteSpace:"nowrap",textOverflow:"ellipsis"};
              return (
                <Fragment>
                  <Input ref="txtInput" 
                      defaultValue={txtValue} 
                      onPressEnter={this.onInputChange}  //按下回车的回调
                      onBlur={this.onInputChange} //onblur 事件会在对象失去焦点时发生。
                      style={inputStyle} //控制显隐
                      />
                  <span 
                      style={spanStyle} 
                      onClick={this.onSpanClick}  //点击触发
                      >{txtValue}</span>
                </Fragment>
                );
            
        }
    }
    
    export default TableInputEdit;
    

      

    1、路在何方? 路在脚下 2、何去何从? 每个人都在探索,未来的方向在何处。如果说某些方向是世人已经公认的,那么就先按照公认的去走吧(ps:站在巨人的肩膀上看世界会清晰)。 如果说方向,当今世人还不清晰准确。那么就大胆往前走吧,对与错并不重要。心中的方向更加重要。
  • 相关阅读:
    现代人的防范心理是不是太重
    几个概念
    Oracle 10G EM 的创建
    我爸和在我们小区里的一位老大爷
    Linux下Oracle10G服务的配置
    linux下使用文件来模拟硬盘进行ASM测试开发技术
    教你一步一步创建/配置Oracle9i Data Guard Manager
    “深入浅出”是什么导致不能以操作系统用户身份连接到数据库
    WCF 中,出现The remote server returned an unexpected response: (400) Bad Request.
    【题解】 「联合省选2020」信号传递 状压dp LOJ3302
  • 原文地址:https://www.cnblogs.com/yuanjili666/p/13723677.html
Copyright © 2011-2022 走看看