gpt4 book ai didi

javascript - 为 .includes 添加了 Poly-fill,但尽管在所有其他区域都得到了解决,但仍然在一个区域出现错误

转载 作者:行者123 更新时间:2023-12-03 01:16:53 24 4
gpt4 key购买 nike

IE 11 触发对象不支持属性或方法“includes”,因为 IE11 不支持它:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes#Browser_compatibility

您必须添加以下polyfill才能使其工作:

if (!String.prototype.includes) {
String.prototype.includes = function(search, start) {
'use strict';
if (typeof start !== 'number') {
start = 0;
}

if (start + search.length > this.length) {
return false;
} else {
return this.indexOf(search, start) !== -1;
}
};
}

我已将其添加到我的 index.jsx 中,它解决了任何 .includes() 发生的问题,除了一个,我不知道为什么。

我在 React 容器中有这段 JS:

removeInfectedFiles() {
let { filesAccepted } = this.state;
const { infected } = this.props.upload.data;

this.setState({
...this.state,
filesAccepted: filesAccepted.filter(
file => !infected.includes(file.key)
)
})

var filesInfected = [];

_.map(infected, i => {
filesInfected.unshift(
<p key={ i }>{ i }</p>
)
});

this.setState({
filesInfected
})

}

适用于除 IE 11 之外的所有其他浏览器。

在将文件写入服务器之前,会对其进行病毒扫描。如果一个文件有服务器响应受感染的文件列表,这应该是“this.props.upload.data...”并且显然不会将它们写入服务器。这将从成功提交的文件列表中删除文件名。

最佳答案

Array.prototype.includes()String.prototype.includes() 不同。如果 infected 是一个数组,您需要为数组方法包含一个 pollyfill。

关于javascript - 为 .includes 添加了 Poly-fill,但尽管在所有其他区域都得到了解决,但仍然在一个区域出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51972497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com