我在react native中创建了一个圆形进度条,错误是get is turnByStyle'未定义。
这是我在文章的帮助下设计的代码。这必须根据某些参数绘制进度圈。我正在使用ES6定义函数
SELECT data_date from
(select '2019-01-02 10:00:00' data_date union ALL
select '2019-01-28 10:00:00') d
where DATE_FORMAT(date(data_date),'%Y-%m-%d %r') BETWEEN DATE_FORMAT(date('2019-01-01 00:00:00'),'%Y-%m-%d %r') AND DATE_FORMAT(date('2019-01-07 00:00:00'),'%Y-%m-%d %r');
我希望带有进度条的圆形圆圈
答案 0 :(得分:0)
this.rotateByStyle
=>
rotateByStyle
rotateByStyle
未包含在this
中。
在方法中,这是指所有者对象。 单独地,这是指全局对象。 在函数中,这是指全局对象。 在函数中,在严格模式下,这是未定义的。 在事件中,这是指接收事件的元素。 诸如call()和apply()之类的方法可以将其引用到任何对象。
官方:JS This
答案 1 :(得分:0)
const, let or var
关键字之一来初始化变量。因此,根据您的情况,rotateByStyle = ...
和renderThirdLayer = ...
变量应使用上述任何关键字进行声明,例如:-{{1} },以便对其进行定义并起作用。
答案 2 :(得分:0)
我尝试了const,但没有用,所以我用let
let rotateByStyle = (percent, base_degrees, clockwise) => {
let rotateBy = base_degrees;
if(clockwise) {
rotateBy = base_degrees + (percent * 3.6);
} else {
//anti clockwise progress
rotateBy = base_degrees - (percent * 3.6);
}
return {
transform:[{rotateZ: `${rotateBy}deg`}]
};
}
let renderThirdLayer = (percent, commonStyles, ringColorStyle, ringBgColorStyle, clockwise, bgRingWidth, progressRingWidth, innerRingStyle, startDegrees) => {
let rotation = 45 + startDegrees;
let offsetLayerRotation = -135 + startDegrees;
if(!clockwise) {
rotation += 180;
offsetLayerRotation += 180;
}
if(percent > 50) {
return <View style= {[styles.secondProgressLayer,this.rotateByStyle((percent - 50), rotation, clockwise),
commonStyles, ringColorStyle, {borderWidth: progressRingWidth} ]}></View>
} else {
return <View
style={[styles.offsetLayer, innerRingStyle, ringBgColorStyle, {transform:[{rotateZ: `${offsetLayerRotation}deg`}], borderWidth: bgRingWidth}]}>
</View>
}
}