Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何更新输入值_Javascript_Reactjs - Fatal编程技术网

Javascript 如何更新输入值

Javascript 如何更新输入值,javascript,reactjs,Javascript,Reactjs,我有一个列表和编辑按钮,当用户点击编辑按钮打开一个新的模式。我想自动填充所选用户名邮件等。服务器端响应为{this.test.name}我给他输入值以自动填充,但当用户单击编辑按钮时,ı可以看到名称,但ı无法更改输入。ı如何做? 代码: 阿德-索亚德 您无法更改该输入值,因为您已将该值设置为this.test.name,并且未定义onChange处理程序。所以,您应该做的是为输入字段创建一个状态,然后在componentDidMount上,使用来自服务器的数据填充该状态 然后在您的输入字段上

我有一个列表和编辑按钮,当用户点击编辑按钮打开一个新的模式。我想自动填充所选用户名邮件等。服务器端响应为{this.test.name}我给他输入值以自动填充,但当用户单击编辑按钮时,ı可以看到名称,但ı无法更改输入。ı如何做? 代码:


阿德-索亚德

您无法更改该输入值,因为您已将该值设置为
this.test.name
,并且未定义
onChange
处理程序。所以,您应该做的是为输入字段创建一个状态,然后在
componentDidMount
上,使用来自服务器的数据填充该状态

然后在您的输入字段上

this.state = {
  val: ''
}

<input value={this.test.name}  onChange={e => setState({val: e.target.value})}/>
this.state={
val:'
}
setState({val:e.target.value})}/>
可能会有语法错误,因为我现在已经习惯了使用钩子,但这就是它的要点

  • 将名称保留在以下状态:
  • this.state={
    名称:“”,
    }
    
    (如果仅在装载时检索,则在拥有时设置状态)

  • 将值={this.state.name}传递给输入
  • 将onChange={handleNameChange}传递给输入
  • constHandNameChange=(e)=>{
    setState({name:e.target.value});
    }
    
    如果您正在使用挂钩,您可以执行以下操作:

    从“react”导入{useState};//导入使用状态
    导出默认函数App(){
    const[name,setName]=useState(“”;//useState钩子
    //处理更改事件
    常数handleChange=(e)=>{
    e、 preventDefault();//防止默认操作
    setName(e.target.value);//将name设置为e.target.value(事件)
    };
    //渲染
    返回(
    {name}

    ); }
    首先,我们导入
    useState()
    钩子来使用它,然后我们使用它来存储name值的状态,您可以给它一个空字符串的初始值(
    “”
    )。在
    handleChange()
    函数中,我们阻止默认操作并将状态设置为
    e.target.value
    ,这是事件传递的输入值(如
    (e)
    )。每次输入更改时,状态将更新,页面将重新呈现


    你可以查看我的沙盒

    Adı-Soyadı你试过我在评论中添加的内容吗?考虑给予一些反馈,问候我使用了V0.14不能使用UnStand,但是谢谢你的其他解决方案对我来说不起作用。我做了同样的事情,但ı无法更改您是否可以尝试在
    标记中添加
    onChange={handleChange}
    ,并复制我在上面添加的handleChange函数?然后将
    setName(…)
    替换为
    setState({name:e.target.value})
    或替换为状态具有的属性。要检查值是否正确传递,可以尝试通过在
    handleChange()
    函数中添加
    console.log(e.target.value)
    来记录事件。
    this.state = {
      val: ''
    }
    
    <input value={this.test.name}  onChange={e => setState({val: e.target.value})}/>