首页 > 解决方案 > 拼接数组是一个空值

问题描述

我正在使用此代码从 React Native 中的 Array 中删除一个项目:

var array = [...this.state.gallery];
if (index !== -1) {
   array.splice(index, 1);
   this.setState({gallery: array,
   photosHaveNow: this.state.photosHaveNow - 1});
}

但是,当 item 被删除时,该数组将写入您的位置:

{"empty": true, "key": "blank-2"}

最后一个例子:

["http://parquedasfeiras.online/wp-content/uploads/2019/09/WhatsApp-Image-2019-11-30-at-00.38.33.jpeg", "http://parquedasfeiras.online/wp-content/uploads/2019/09/WhatsApp-Image-2019-11-30-at-00.38.33-1.jpeg", "http://parquedasfeiras.online/wp-content/uploads/2019/09/WhatsApp-Image-2019-11-30-at-00.38.33-2.jpeg", "http://parquedasfeiras.online/wp-content/uploads/2019/09/WhatsApp-Image-2019-11-30-at-00.38.33-3.jpeg", "http://parquedasfeiras.online/wp-content/uploads/2019/09/WhatsApp-Image-2019-11-30-at-00.38.34.jpeg", "http://parquedasfeiras.online/wp-content/uploads/2019/09/WhatsApp-Image-2019-11-30-at-00.38.34-1.jpeg", "http://parquedasfeiras.online/wp-content/uploads/2019/09/WhatsApp-Image-2019-11-30-at-00.38.34-4.jpeg", {"empty": true, "key": "blank-2"}, {"empty": true, "key": "blank-2"}, {"empty": true, "key": "blank-2"}, {"empty": true, "key": "blank-2"}, {"empty": true, "key": "blank-2"}]

当通过拼接删除一个项目时,“{”empty“:true”,key“:”blank-2“}”被放置到位,我希望没有放置任何东西。

标签: javascriptreactjsreact-native

解决方案


我相信我已经找到了解决办法。不知道好不好听

    var array = [...this.state.gallery];

    if (index !== -1) {
        array.splice(index, 1);
    }

    var finalArray = [];

    array.forEach(element => {
        if(typeof element !== 'object')
        {
            finalArray = finalArray.concat(element)
        }
    })

    this.setState({
        gallery: finalArray,
        photosHaveNow: this.state.photosHaveNow - 1
    })

推荐阅读