0.36:Headless JS、鍵盤 API 及更多
·3 分鐘閱讀時間
今天我們發布了 React Native 0.36。請繼續閱讀以了解更多新功能。
Headless JS
Headless JS 是一種在您的應用程式於背景執行時,在 JavaScript 中執行工作的方式。例如,它可用於同步最新資料、處理推播通知或播放音樂。目前僅適用於 Android。
若要開始使用,請在專用檔案 (例如 SomeTaskName.js
) 中定義您的非同步工作
module.exports = async taskData => {
// Perform your task here.
};
接下來,在 AppRegistry
上註冊您的工作
AppRegistry.registerHeadlessTask('SomeTaskName', () =>
require('SomeTaskName'),
);
使用 Headless JS 需要編寫一些原生 Java 程式碼,以便讓您在需要時啟動服務。請查看我們全新的 Headless JS 文件以了解更多資訊!
鍵盤 API
現在使用 Keyboard
,可以更輕鬆地使用螢幕鍵盤。您現在可以監聽原生鍵盤事件並對其做出反應。例如,若要關閉作用中的鍵盤,只需呼叫 Keyboard.dismiss()
import {Keyboard} from 'react-native';
// Hide that keyboard!
Keyboard.dismiss();
動畫除法
React Native 已支援透過加法、乘法和模數來組合兩個動畫值。在 0.36 版中,現在可以透過除法組合兩個動畫值。在某些情況下,動畫值需要反轉另一個動畫值以進行計算。一個範例是反轉縮放 (2x --> 0.5x)
const a = Animated.Value(1);
const b = Animated.divide(1, a);
Animated.spring(a, {
toValue: 2,
}).start();
然後 b
將追隨 a
的 Spring 動畫,並產生 1 / a
的值。
基本用法如下
<Animated.View style={{transform: [{scale: a}]}}>
<Animated.Image style={{transform: [{scale: b}]}} />
<Animated.View>
在此範例中,內部影像完全不會被拉伸,因為父項的縮放會被抵銷。如果您想了解更多資訊,請查看動畫指南。
深色狀態列
StatusBar
新增了一個 barStyle
值:dark-content
。透過此新增功能,您現在可以在 Android 和 iOS 上使用barStyle
。現在的行為如下
default
:使用平台預設值 (iOS 上為淺色,Android 上為深色)。light-content
:使用淺色狀態列,搭配黑色文字和圖示。dark-content
:使用深色狀態列,搭配白色文字和圖示。
...及更多
以上僅是 0.36 版中變更的範例。請查看 GitHub 上的版本資訊,以查看新功能、錯誤修正和重大變更的完整清單。
您可以透過在終端機中執行以下命令來升級至 0.36
$ npm install --save react-native@0.36
$ react-native upgrade