【问题标题】:Cannot read property 'includes' of undefined in reactjs?无法读取 reactjs 中未定义的属性“包含”?
【发布时间】:2020-03-21 14:01:11
【问题描述】:

我尝试解决包含未定义的问题,为此,我使用 && 运算符。

 isAllChecked = label => {
    const { permission } = this.state;

     false value - I need false value when I get data from API,
     But I got an error that includes undefined. for that, I used && operator
     but I got a true value, I don't need to get true value

      const data = !groupItems.some(
      x => !permission && !permission[label] && !permission[label].includes(x)
    );

    // console.log(true) //true

    const data = !groupItems.some(
      x => !permission[label].includes(x)
    );

   // I got a false value using static data without using && operator

  // data output: false (accepted output- getting using static data, but  I need 
   to get the same value when I get data from API, I got an error includes undefined without using && operator)

    return data;

  };

但是,如果我从 API 获取数据,则显示此方法无法读取未定义的属性,当我要解析未定义的“包含”时,我使用了 && 运算符并获得了真值。

 Cannot read property 'includes' of undefined. 

我不需要真值,我需要初始安装的组件的假值。

我的问题是如何解决无法通过使用 && 运算符或任何东西读取未定义的属性“包含”。
这是我的代码沙箱:https://codesandbox.io/s/stackoverflow-a-60764570-3982562-v1-um18k

【问题讨论】:

  • 还是不行吗??似乎codeandbox正在工作
  • 是的,当我使用静态数据时它可以工作,但是当我使用 API 时,该方法不起作用,因为包含未定义。
  • 为了解决我使用 && 运算符,但我得到了一个真实的价值。但是使用静态数据,我得到了错误的价值。
  • 它是第三方 API 吗?
  • 试试这个。我认为它正在工作 const data = groupItems.every( x => permission && permission[label] && permission[label].includes(x) );

标签: javascript arrays reactjs object


【解决方案1】:

您可以使用every 检查所有而不是一些。

isAllChecked = label => {
    const { permission } = this.state;
    const data = groupItems.every(
      x => permission && permission[label] && permission[label].includes(x)
    );
    return data;
  };

【讨论】:

  • 当我点击复选框时,我的输出应该是这种格式 {permission:{group:["1","2"]}} 并且如果我点击第二个,我的输出应该是这种格式 {权限:{组:[“1”,“2”]},顶级组:[“1”]}。目前,我通过使用初始状态 {permission:{group:[]},topgroup:[]} 看到两个这样的默认对象。我不需要像这样 {permission:{group:[]},topgroup:[]} 获得初始状态。我只想在用户单击复选框时添加数据。如何删除初始状态?
猜你喜欢
  • 2019-07-26
  • 1970-01-01
  • 2021-12-21
  • 2020-05-12
  • 2021-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-23
相关资源
最近更新 更多