通用定时器组件,子控件可以自定义,由`Timer`来控制计时器的相关功能
本组件**不提供** 任何 UI 样式,只提供定时器功能。$ npm install rn-timer --save
Props | Type | Optional | default | Description |
---|---|---|---|---|
timestamp | number | ❎ | 未来的某个时间戳(计时结束时间戳) | |
timerStep | number | ✅ | 时间跨度,1000则为1s | |
timerUnit | number | ✅ | ms | (未启用) |
binders | object | ✅ | 值映射对 | |
timerFinishedListener | func | ✅ | 计时器计时结束的回调 |
Class TimerExample
export default class TimerExample extends Component {
render() {
const binder = { // 值-func 映射
hour: (date: Date) => date.getUTCHours(),
min: (date: Date) => date.getMinutes(),
second: (date: Date) => date.getSeconds(),
};
return (
<Timer
timerStep={10}
binders={binder}
timestamp={new Date().getTime() + 50000}
timerFinishedListener={() => {
alert('end')
}}>
// your cusotmer Timer Component
<TimerUI/>
</Timer>
);
}
}
class TimerUI
(Your customer component)
import React, {Component} from 'react';
import { StyleSheet, Text, View} from 'react-native';
export default class TimerUI extends Component {
static propTypes: {
hour: React.PropTypes.number,
min: React.PropTypes.number,
second: React.PropTypes.number,
}
render() {
const {hour, min, second} = this.props
return (
<View style={{marginTop: 20, flexDirection: 'column'}}>
<Text>
{`hour: ${hour}`}
</Text>
<Text>
{`min: ${min}`}
</Text>
<Text>
{`second: ${second}`}
</Text>
</View>
);
}
}