我正在使用ReactJS并且有一个网格,我正在填充数据。我已经抽象了网格,所以我们需要做的就是为列和数据传递道具(columnDefinitions - 列信息数组,gridData - object)。我遇到的问题是在填充组件的状态时,我会做这样的事情:
this.state = {
gridOptions: {
colDefs: columnDefinitions,
...
}
}
然后在componentDidMount中:
componentDidMount(){
this.setState( { rowData: this.props.gridData });
}
这在Chrome中运行良好但在Edge(v41)中我得到的Object不支持属性或方法'append'。
如果我更改了手动定义colDef:[]数组而不是传入的prop没有问题但是我无法抽象。
答案 0 :(得分:0)
.append
并未被普遍接受。
https://developer.mozilla.org/en-US/docs/Web/API/ParentNode/append
.append
的填充
(function (arr) {
arr.forEach(function (item) {
if (item.hasOwnProperty('append')) {
return;
}
Object.defineProperty(item, 'append', {
configurable: true,
enumerable: true,
writable: true,
value: function append() {
var argArr = Array.prototype.slice.call(arguments),
docFrag = document.createDocumentFragment();
argArr.forEach(function (argItem) {
var isNode = argItem instanceof Node;
docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)));
});
this.appendChild(docFrag);
}
});
});
})([Element.prototype, Document.prototype, DocumentFragment.prototype]);