react-native-root-toast的使用
給大家安利一款可以在ios
和android
上通用的Toast
元件: react-native-root-toast
現在開源的Toast
元件一大堆,為什麼要選用這個呢?原因如下:
- 純
javascript
解決方案,免去了原生安裝的各種繁雜步驟,直接一行npm install react-native-root-toast --save
搞定 - 同時相容
iOS
和Android
,使用完全一致的介面,不用再為同時相容兩個平臺再寫額外的程式碼 - 可以自定義
toast
的各類屬性(顯示時間、位置、延時、動畫、陰影等) - 同時支援兩種呼叫形式(可以使用
API
呼叫,也可以作為Component
直接放在render
裡面進行控制)
安裝
npm install [React](http://lib.csdn.net/base/react)-native-root-toast --save
搞定!
使用
可以支援兩種不同的呼叫方式.
如果你喜歡API方式的呼叫
import Toast from 'react-native-root-toast'; // 引入類庫
// 通過呼叫 Toast.show(message, options); 可以在螢幕上顯示一個toast,並返回一個toast例項
let toast = Toast.show('This is a message', {
duration: Toast.durations.LONG, // toast顯示時長
position: Toast.positions.BOTTOM, // toast位置
shadow: true, // toast是否出現陰影
animation: true, // toast顯示/隱藏的時候是否需要使用動畫過渡
hideOnPress: true, // 是否可以通過點選事件對toast進行隱藏
delay: 0, // toast顯示的延時
onShow: () => {
// toast出現回撥(動畫開始時)
},
onShown: () => {
// toast出現回撥(動畫結束時)
},
onHide: () => {
// toast隱藏回撥(動畫開始時)
},
onHidden: () => {
// toast隱藏回撥(動畫結束時)
}
});
// 也可以通過呼叫Toast.hide(toast); 手動隱藏toast例項
setTimeout(function () {
Toast.hide(toast);
}, 500);
你也可以通過react元件方式呼叫Toast.
在render
裡面加入<Toast />
元件,並通過visible
屬性對Toast
進行控制.<Toast />
的屬性和API
呼叫時傳入的選項相同.toast
內容新增在元素內部:<Toast>message</Toast>
注意:通過元件方式呼叫的toast
,在<Toast />
元件 componentWillUnmount
的時候會自動消失
import React, {Component} from 'react-native';
import Toast from 'react-native-root-toast';
class Example extends Component{
constructor() {
super(...arguments);
this.state = {
visible: false
};
}
componentDidMount() {
setTimeout(() => this.setState({
visible: true
}), 2000); // show toast after 2s
setTimeout(() => this.setState({
visible: false
}), 5000); // hide toast after 5s
};
render() {
return <Toast
visible={this.state.visible}
position={50}
shadow={false}
animation={false}
hideOnPress={true}
>This is a message</Toast>;
}
}
報錯 null is not an object(evaluting '_this._root_setNativeProps')
修改方法:
在原始檔lib/ToastContainer.js中改下程式碼
componentWillUnmount = () => {
this._root&&this._hide();
};
參考:
http://blog.csdn.net/sinat_17775997/article/details/60954255
https://github.com/magicismight/react-native-root-toast/issues/24
相關文章
- Scrapy框架的使用之Scrapyrt的使用框架
- Docker框架的使用系列教程(四)容器的使用Docker框架
- Docker的使用Docker
- pip 的使用
- Redis的使用Redis
- MongoDB的使用MongoDB
- mysql的使用MySql
- Typeof的使用
- iview 的使用View
- git的使用Git
- IntentService的使用Intent
- RestTemplate的使用REST
- lombok的使用Lombok
- MybatisGenerator的使用MyBatis
- elasticsearch的使用Elasticsearch
- SVG 的使用SVG
- sqlmap的使用SQL
- Promise的使用Promise
- git 的使用Git
- postman的使用Postman
- git的使用+Git
- joomla的使用OOM
- Nginx的使用Nginx
- SwitchHosts的使用
- pipenv 的使用
- BitArray的使用
- HttpUtils的使用HTTP
- PHPeof的使用PHP
- kendoTooltip的使用
- ionicsqlite的使用SQLite
- webview的使用WebView
- RecyclerView的使用View
- WKWebView 的使用WebView
- Qunit的使用
- ubuntu的使用Ubuntu
- JDBC的使用JDBC
- CardView的使用View
- sqlldr的使用SQL