首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >未捕获的长度:无法使用react和redux-TypeError验证读取未定义的属性'length‘

未捕获的长度:无法使用react和redux-TypeError验证读取未定义的属性'length‘
EN

Stack Overflow用户
提问于 2017-05-31 20:08:23
回答 3查看 10.4K关注 0票数 2

我在这里使用redux-form和react,并尝试使用验证。我已经做好了所有的工作,但是由于某些原因,当我尝试验证一个字段必须是某个长度属性时,我得到了:

代码语言:javascript
运行
AI代码解释
复制
Uncaught TypeError: Cannot read property 'length' of undefined

代码如下:

代码语言:javascript
运行
AI代码解释
复制
import React, { Component } from 'react';
import {Field, reduxForm} from 'redux-form';

class PostsNew extends Component {
  constructor(props) {
    super(props);

    this.onSubmit = this.onSubmit.bind(this);
  }

  renderField(field) {
    return (
      <div className="form-group">
        <label><strong>{field.label}:</strong></label>
        <input
          className="form-control"
          type="text"
          {...field.input}
        />
        {field.meta.touched ? field.meta.error : ''}
      </div>
    )
  }

  onSubmit(values) {
    console.log(values);
  }

  render() {
    const { handleSubmit } = this.props;

    return (
      <form onSubmit={handleSubmit(this.onSubmit)}>
        <Field
          label="Title for Post"
          name="title"
          component={this.renderField}
        />
        <Field
          label="Categories"
          name="categories"
          component={this.renderField}
        />
        <Field
          label="Post Content"
          name="content"
          component={this.renderField}
        />
        <button type="submit" className="btn btn-success">Submit</button>
      </form>
    );
  }
}

function validate(values) {
  const errors = {};

  //Validate the inputs from values
  if(!values.title) {
    errors.title = "Enter a title!";
  }
  if(!values.categories) {
    errors.categories = "Enter some categories!";
  }

  if(!values.content) {
    errors.content = "Enter some content please!";
  }

  if(!values.content.length < 20) {
    errors.content = "Content must be longer than 3 characters!";
  }
  //If errors is empty, the form is fine to submit
  //If errors has any properties, redux form assumes form is invalid
  return errors;
}

export default reduxForm({
  validate,
  form: 'PostsNewForm'
})(PostsNew);
EN

回答 3

Stack Overflow用户

发布于 2017-05-31 20:55:55

代码语言:javascript
运行
AI代码解释
复制
if(!values.content || !values.content.length < 20){ }

您也可以先检查对象,然后再检查属性本身。

票数 3
EN

Stack Overflow用户

发布于 2017-05-31 21:06:50

我不确定这是否是正确的方法,但它确实有效!

代码语言:javascript
运行
AI代码解释
复制
if(values.content){
    if(values.content.length < 20){
      errors.content = "Content must be longer than 20 characters!";
    }
  }
票数 1
EN

Stack Overflow用户

发布于 2018-10-25 09:55:47

我觉得最好的方法是做内联验证,这样

代码语言:javascript
运行
AI代码解释
复制
<Field
  label="Post Content"
  name="content"
  component={this.renderField}
  validate={(value) => value && value.length > 20 ? undefined : 'Content must be longer than 20 characters!'}
/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44293822

复制
相关文章
length()方法,length属性和size()的方法的区别
length()方法,length属性和size()的方法的区别: length()方法是针对字符串来说的,要求一个字符串的长度就要用到它的length()方法; length属性是针对Java中的数组来说的,要求数组的长度可以用其length属性; java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看! 这个例子来演示这两个方法和一个属性的用法: public static void main(String[] args) { String []list
10JQKA
2018/05/09
1.2K0
@Column中的length属性和@Size和@length区别
@Column:jpa注解,length属性标识数据库中字段长度,但是传入参数时不会校验,在往数据库中插入大于该长度的数据时,会报错
botkenni
2022/06/23
1.6K0
Mysql如何查字段的长度,Mysql中length()、char_length()的区别
1、今天发生了一件有意思的事情,传输的数据大于标准定的字段长度了,我把字段长度调大了,把数据传输过来了。谁知道,人家的数据不符合标准,要删除了重新搞,那么你如何将超长的数据删除呢,或者将超长的数据查询出来。
别先生
2020/03/19
4.5K0
灵魂拷问:Java如何获取数组和字符串的长度?length还是length()?
在逛 programcreek 的时候,我发现了上面这个主题。说实话,我当时脑海中浮现出了这样一副惊心动魄的画面:
沉默王二
2019/12/24
2.3K0
matlab获取矩阵和向量长度length和size
matlab获取矩阵和向量长度length和size 觉得有用的话,欢迎一起讨论相互学习~ 概论 size:获取数组的行数和列数 length:数组长度(即行数或列数中的较大值) numel:元素总数。 size() s=size(A),当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时数组的行数,第二个元素是数组的列数。 [r,c]=size(A),当有两个输出参数时,size函数将数组的行数返回到第一个输出变量,将数组的列数返回到第二个输出变量。 如果在size函数的输入参数中再添加一项,并
演化计算与人工智能
2020/08/14
2.5K0
10 种 JavaScript 最常见的错误
查看了数千个项目后,发现了 10 个最常见的 JavaScript 错误。我们会告诉你什么原因导致了这些错误,以及如何防止这些错误发生。如果你能够避免落入这些 “陷阱”,你将会成为一个更好的开发者。
小生方勤
2019/06/26
8.7K0
10 种 JavaScript 最常见的错误
1000多个项目中的十大JavaScript错误以及如何避免
通过统计数据库中的1000多个项目,我们发现在 JavaScript 中最常出现的错误有10个。下面会向大家介绍这些错误发生的原因以及如何防止。 对于这些错误发生的次数,我们是通过收集的数据统计得出的
葡萄城控件
2018/03/27
8.4K0
1000多个项目中的十大JavaScript错误以及如何避免
React报错之无法在未挂载的组件上执行React状态更新
原文链接:https://bobbyhadz.com/blog/react-cant-perform-react-state-update-on-unmounted-component[1]
chuckQu
2022/08/19
2.3K0
React,优雅的捕获异常
https://juejin.cn/post/6974383324148006926
winty
2021/07/27
8240
LENGTH 和 CHAR_LENGTH 的区别
char(N) 和 varchar(N) 这里的N指的是字符长度,而不是字节长度。就是说可以插入N个字符的长度的内容(不管插入的是英文还是中文,反正是按照长度算的)。
保持热爱奔赴山海
2019/09/18
1.1K0
React router的Route中component和render属性的使用
上面的代码中,App组件内有一个简单的Bar组件,通过component属性被Route引用。
大神带我来搬砖
2018/12/17
3K0
10 种最常见的 Javascript 错误
英文:SKOWRONSKI 译文:elevenbeans elevenbeans.github.io/2018/02/05/top-10-javascript-errors/ 为了回馈我们的开发者社区,我们查看了数千个项目的数据库,发现了 JavaScript 中频度最高的 10 种错误。我们会告诉你什么原因导致了这些错误,以及如何防止这些错误发生。如果你能够避免落入这些 “陷阱”,你将会成为一个更好的开发者。 数据才是王道,我们收集并分析了出现频次排前 10 的 JavaScript 错误。 Rollb
前端教程
2018/03/05
6.9K0
10 种最常见的 Javascript 错误
1000个项目中前10名的JavaScript错误介绍
为了回馈我们的开发者社区,我们查看了数千个项目的数据库,发现了 JavaScript 中频度最高的 10 种错误。我们会告诉你什么原因导致了这些错误,以及如何防止这些错误发生。如果你能够避免落入这些 “陷阱”,你将会成为一个更好的开发者。 数据才是王道,我们收集并分析了出现频次排前 10 的 JavaScript 错误。 Rollbar 会收集每个项目的所有错误,并总结每个错误发生的次数。我们通过根据 “指纹”(rollbar 用到的一种算法,详见:https://rollbar.com/docs/gr
程序你好
2018/07/20
6.3K0
处理Python未捕获异常
和Java一样,python也提供了对于checked exception和unchecked exception. 对于checked exception,我们通常使用try except可以显示解决,对于unchecked 异常,其实也是提供回调或者是钩子来帮助我们处理的,我们可以在钩子里面记录崩溃栈追踪或者发送崩溃数据. 下面代码可以实现python unchecked exception回调,并输出日志信息.
技术小黑屋
2018/09/04
1.7K0
[Leetcode][python]Length of Last Word/最后一个单词的长度
这道题主要是考虑一下最后是不是空格,方法是倒着找不是空格的字符并计数,如果遇到空格且计数不是0,说明最后一个单词已经被计数了,所以可以返回了。
蛮三刀酱
2019/03/26
6380
1000多个项目中的十大JavaScript错误以及如何避免
通过统计数据库中的1000多个项目,我们发现在 JavaScript 中最常出现的错误有10个。下面会向大家介绍这些错误发生的原因以及如何防止。
一墨编程学习
2018/10/20
6.3K0
关于java二维数组长度(length)的知识
其实很好理解,因为二维数组可以理解为是一维数组,只不过他的各处的元素是特殊元素—–一维数组
全栈程序员站长
2022/07/01
7130
C#反射读取和设置类的属性
http://www.cnblogs.com/william-lin/archive/2013/06/05/3118233.html
跟着阿笨一起玩NET
2018/09/19
2K0
无法捕获到async await的错误
最近在做.net项目中遇到无法捕获到错误的问题,即使在全局的错误捕获中,也依然没有捕获到,直接造成系统奔溃,究其原因是用了async void 的方法,async void是要避免使用的,详情可以看MSDN这篇文章: https://docs.microsoft.com/zh-CN/archive/msdn-magazine/2013/march/async-await-best-practices-in-asynchronous-programming
javascript.shop
2020/02/14
1.1K0
点击加载更多

相似问题

未捕获长度:无法读取未定义(TypeError)的属性“”length“”

21

未捕获的长度:无法读取未定义的TypeError的属性'length‘

10

未捕获的长度:无法读取未定义的-TypeError/javascript的属性'length‘

134

leaflet未捕获长度:无法读取未定义且未定义markerClusters的属性“”length“”

130

无法读取未定义的未捕获TypeError的属性'length‘:?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文