iul*_*net 4 javascript object ecmascript-6 react-native expo
标题是不言自明的,但是,请考虑以下示例代码:
import * as React from 'react';
import { Text, View, StyleSheet } from 'react-native';
import { Constants } from 'expo';
export default class App extends React.Component {
render() {
return (
<Text>
{Object.fromEntries("test")}
</Text>
);
}
}
Run Code Online (Sandbox Code Playgroud)
在Expo Snacks上查看
通过在Android设备上打开它,我收到该fromEntries函数不存在的错误Object:
但在 iOS 上,它确实存在:
(提供给它的参数错误,但它仍然存在)
那么这里发生了什么?两个平台之间的 JS 引擎不应该是相同的吗?还存在哪些其他已知差异?
很可能你有一个旧的或不完全支持的引擎(检查文档)。你可以像这样制作一个 ES6 polyfill:
Object.fromEntries = Object.fromEntries || arr => arr.reduce((acc, [k, v]) => (acc[k] = v, acc), {});
Run Code Online (Sandbox Code Playgroud)
或者像这样的 ES5 polyfill:
Object.fromEntries = Object.fromEntries || function(arr) {
return arr.reduce(function(acc, curr) {
acc[curr[0]] = curr[1];
return acc;
}, {});
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2032 次 |
| 最近记录: |