【问题标题】:How to resolve this " Uncaught TypeError: Cannot convert undefined or null to object "如何解决这个“Uncaught TypeError: Cannot convert undefined or null to object”
【发布时间】:2017-01-05 02:04:59
【问题描述】:

我的功能是:

function collect_que_ids(e) {
  var val = e.val();
  var data_lo = e.attr('data-lo');
  new_hash = {};
  new_hash[val] = data_lo;
  if(e.is(':checked')){
    if(checked_box_hash.includes(new_hash)){
      checked_box_hash;
    }else{
      checked_box_hash.push(new_hash);
    }
  }
  else{
    new_hash_key = Object.keys(new_hash)[0]
    new_hash_value = new_hash[new_hash_key]
    $.each(checked_box_hash, function(key, value){
      if (typeof Object.keys(value) !== 'nil') {
        current_key = Object.keys(value)
        if (current_key[0] == new_hash_key && value[current_key[0]] == new_hash_value) {
          checked_box_hash.splice(key, 1)
        }
      }
    })
  }
};

我在这条线上遇到了错误。

if (typeof Object.keys(value) !== 'nil') {

需要解决。请帮忙做。

【问题讨论】:

标签: javascript jquery ruby-on-rails arrays hash


【解决方案1】:

Object.keys(value) 返回一个 array 并检查它是否未定义或为空,请执行此操作

 if (typeof Object.keys(value) !== 'undefined' && Object.keys(value).length > 0) {
        // You have an array 
    }

【讨论】:

    【解决方案2】:

    如果您使用的是扩展 PureComponent 的 React 类,请确保将您的状态放入类字段 state = {...},而不是状态类型定义 type State = {...},否则会出错,因为它实际上是空的。

    【讨论】:

      猜你喜欢
      • 2021-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-02
      • 2020-09-16
      • 2013-02-11
      • 1970-01-01
      • 2020-06-01
      相关资源
      最近更新 更多