• 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 函数
    ecplise 修改编码
    mysql json 使用 类型 查询 函数
    java 子类强转父类 父类强转子类
    java UUID
    Java Number & Math 类
    java String类
    apache StringUtils 工具类
    apache ArrayUtils 工具类
    java Properties
  • 原文地址:https://www.cnblogs.com/yuanjili666/p/13723677.html
Copyright © 2020-2023  润新知