React Input Type not editable

后端 未结 3 1185
慢半拍i
慢半拍i 2020-12-14 18:12

I was adding dynamic values to the input file in react then I tried to edit that but it not at all editable.

var shop_profile_data = this.state.data.DETAILS         


        
相关标签:
3条回答
  • 2020-12-14 18:15

    Try using defaultValue instead of value, defaultValue will set the value and also editable. The code will look like this:

    <input id="shopname" className="inputMaterial"  defaultValue={shop_profile_data.NAME} type="text" required/>
    

    reference: Uncontrolled Components – React

    0 讨论(0)
  • 2020-12-14 18:17

    Since value is always rendered with the same value (shop_profile_data.NAME) nothing is able to change. By setting value property you are making input a Controlled Component.

    You need to add an onChange event and then set the shop_profile_data.NAME to a different value. Then the value of the input will change.

    If you only want to set the initial value of the input, use defaultValue property (docs). defaultValue will set the initial value, but then allow the value to be changed.

    For more read about Controlled vs Uncontrolled Components.

    0 讨论(0)
  • 2020-12-14 18:19

    The below code show how we can make an input tag editable in reactjs.

    import React from 'react';
    import { render } from 'react-dom';
    
        class App extends React.Component{
          constructor(props){
            super(props);
            this.state = {
              data: 2016
            }  
          }
          _handleChangeEvent(val) {
            return val;
          }
          render(){
            return (
              <div>
                <input type='number' 
                       onChange={()=>{this._handleChangeEvent(this.state.data);}} 
                       defaultValue={this.state.data} />
              </div>
            );
          }
        }
    
    render(<App/>, document.getElementById('app'));
    
    0 讨论(0)
提交回复
热议问题