我正在使用React-Native-ui-Kitten的Rkswitch组件。该软件包只是我可以使用的一堆UI组件。
开发人员不再支持组件,而我的rkswitch组件无法正常工作。
我的问题是 RkSwitch
的onvaluechange无能为力。
为Android&lt ;-渲染功能不起作用。(问题)
iOS< - 尚未进行测试,但我认为它应该起作用。
我打电话给rkswitch。由于RKSWitch是React Native的<Animated.View>
的包装类包装类,因此无法通过OnvalueChange。
<RkSwitch
style={styles.switch}
value={this.state.onlyMe}
name="Push"
onValueChange={
(onlyMe) => {
console.log('helloworld'); // it can't print helloworld
}
}
/>
这是RKSWitch的实际代码。(这是Android版本)。DOC链接
_onPanResponderRelease = (evt, gestureState) => {
let {toggleable} = this.state;
let {disabled, onValueChange} = this.props;
if (toggleable && !disabled) {
if (onValueChange) { // calls onValueChange and..?
this.toggleSwitch(onValueChange) // call toggle switch
}
}
};
toggleSwitch = (result, callback = () => null) => {
let {value, switchAnimation} = this.state;
let toValue = !value;
this.animateHandler(this.handlerSize);
this.animateSwitch(toValue, () => {
callback(toValue);
this.setState({
value: toValue,
left: toValue ? onLeftValue : offLeftValue
});
switchAnimation.setValue(toValue ? -1 : 1)
})
看来他们正在处理valuechange道具,但行不通。有没有好的JavaScript或React专家???
我没有尝试过,但也许进入rkswitch代码,并围绕动画添加一个 <TouchableOpacity>
。查看并将onvaluechange prop添加到touchableOpacity的OnPress函数中。