2016-03-31 17 views
6

私はES6のどの部分がReact Nativeでサポートされているかを調べようとしています。私はhereと記載されているバベルの変換を知っていますが、私はJavaScriptCoreが独自にサポートしているものを調べるのに苦労していますなくして、 JavaScriptCoreは、さまざまなプラットフォームやデバイスでさまざまなことをサポートしますか? iOS 8とiOS9の違いは何ですか?ES6 on JavaScriptCore and React Native

たとえば、ジェネレータ関数とES6コレクションタイプを使用するコードを書きましたが、これらはBabel変換のリストには含まれていません。また、React Nativeではテストしたデバイスで正常に動作します。しかし、私がターゲットとしているすべてのデバイスでうまく機能するかどうかはどのように分かりますか?

答えて

4

React NativeはJavascriptエンジンとしてJavaScriptCoreを使用しています。 JavaScriptCoreは、iOSのSafariで使用されるエンジンです。 Andriodの場合、一般的にV8が使用されます。したがって、現在の機能のサポートは、a compatability table like this one.

1

となります。JavaScriptCoreのバージョンはiOSのバージョンによって異なります。たとえば、iOS 8では、ここで説明するように一部のES6メソッドにアクセスできません。

npm install --save react-native-polyfill 

を、アプリの最初にそれをロードします:https://mcculloughwebservices.com/2016/11/29/adding-support-es2015-number-methods/

は、彼らがそうであってもそれをインストールし、自分のポスト次a polyfillを作っ

import 'react-native-polyfill' 

Number.isIntegerはちょうど私がネイティブアプリリアクト使用して誰かのデバイス上でエラーが発生したので、私はここで終わった:彼らはiOSの8 .1.2を持って

TypeError: undefined is not a function (evaluating 'Number.isInteger(u)')

を。私を使用して(iOSの10.3.1にしかしのAppleWebKit/600.1.4(ヤモリのようにKHTML、)モバイル/ 12B440

; 彼らのuserAgentにはのMozilla/5.0(Mac OS XのようなCPU iPhone OS 8_1_2 iPhone)でありますiPhoneまたはシミュレータ)、このメソッドが存在し、正常に動作します。 のAppleWebKit/603.1.30(ヤモリのようにKHTML、)モバイル/ 14E8301に加え

は、Caniuseによると、この機能がに登場し、私のuserAgentにはのMozilla/5.0(Mac OS XのようなCPU iPhone OS 10_3_1 iPhone)でありますSafari Mobile 9

関連する問題