繁体   English   中英

反应输入类型不可编辑

[英]React Input Type not editable

我在反应中向输入文件添加动态值,然后我尝试编辑它,但它根本不可编辑。

var shop_profile_data = this.state.data.DETAILS;

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

请给我解决方案。 谢谢

由于value始终使用相同的 value ( shop_profile_data.NAME ) 呈现,因此无法更改。 通过设置value属性,您将input设为受控组件。

您需要添加一个onChange事件,然后将shop_profile_data.NAME设置为不同的值。 然后input的值会改变。

如果您只想设置input的初始值,请使用defaultValue属性 ( docs )。 defaultValue将设置初始值,但随后允许更改该值。

有关受控与非受控组件的更多信息。

尝试使用defaultValue而不是valuedefaultValue将设置值并且也是可编辑的。 代码如下所示:

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

参考: 不受控制的组件 – React

下面的代码显示了我们如何在 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'));
<input className="form-control" type="text" placeholder="Your Location" value={<Location/>}  

它的给定对象对象

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM