【问题标题】:React Native Array UpdatesReact 原生数组更新
【发布时间】:2019-08-22 08:25:02
【问题描述】:

我有两个对象数组,它们的属性匹配(id 和名称)。

var result1 = [[
      { title: "Option 1", enable: false },
      { title: "Option 2", enable: false },
      { title: "Option 3", enable: false },
      { title: "Option 4", enable: false },
      { title: "Option 5", enable: false }
    ]
;
var result2 = [
    { title: "Option 3", enable: false },
    { title: "Option 4", enable: false },
];


【问题讨论】:

    标签: arrays react-native


    【解决方案1】:
    result1.map(item => {
      const isChecked = result2.some(({ title }) => title === item.title);
      return {
        ...item,
        checked: isChecked
      }
    });
    

    【讨论】:

    • 它说 result2.some 不是一个函数。 result2.some 未定义
    • 你能展示你的整个代码吗?特别是定义 result1 和 result2 的位置。
    • 请立即查看
    • @Dan 你正在对数组进行一些操作,没有这样的数组函数。
    【解决方案2】:

    使用以下代码,

    import _ from 'lodash';
    
    this.setState({
        result1: this.state.result1.map(item => {
                       return (_.find(this.state.result2, item)) ? { ...itemObj, checked: true }: { ...itemObj, checked: false }; });
                       // return (_.find(this.state.result2, {'title': item.title})) ? { ...itemObj, checked: true }: { ...itemObj, checked: false }; }); // if you want to check only title
    });
    

    lodash 是一个对这些事情很有帮助的库。

    可以在linkfind 中找到相同的详细文档。

    如果您只想检查其中的一部分,上面的代码会检查整个项目对象,说只有下面的标题是代码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      • 2016-12-21
      • 2022-01-23
      • 2019-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多