javascript - ReactJS 引用号 : undefined error getting input element value

标签 javascript reactjs

在下面的代码中,我设置了 ref关于<input/> <form>期间使用的元素元素的onSubmit处理程序。

由于某种原因,我在提交表单时收到以下错误:

TypeError: Cannot read property 'value' of undefined

如何防止此错误?

import React from "react";

class AddItemForm extends React.Component {

  nameRef = React.createRef();

  createItem = event => {

    event.preventDefault();

    const item = {
      name: this.nameRef.value.value,      
    };  
  }

  render() {
    return (
      <form className="item-edit" onSubmit={this.createItem}>
        <input name="name" ref={this.nameRef} type="text" placeholder="Name" />        
        <button type="submit">+ Add Item</button>
      </form>
    );
  }
}

export default AddItemForm;

最佳答案

您需要将第一个 value 替换为 current,以确保 ref 对象通过该字段提供对底层 DOM 元素的访问。

以下内容应该可以解决您的问题:

createItem = event => {
    event.preventDefault();
    const item = {
       name: this.nameRef.current.value,      // Replace value with current 
    };
    console.log(item);      
}

关于javascript - ReactJS 引用号 : undefined error getting input element value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55935318/

相关文章:

javascript - AG-GRID 单元格在第二次编辑后仅显示错误边框和工具提示

javascript - 通过表单输入更新状态

javascript - React.createElement : type is invalid in simple empty app

reactjs - 如何使用 Jest 为 Yup.isValid 函数编写测试用例?

unit-testing - 运行时错误运行 Jest : in React

javascript - 为什么我的 thead 没有出现在 Internet Explorer 中?

javascript - 无法导入外部 NPM 包来制作 Angular 库

javascript - 如何在 lodash/下划线中强制使用 arity?

javascript - 如何在 json.erb 模板中渲染脚本标签

javascript - 在 React.js 应用程序中从广告合作伙伴加载外部脚本