我正在使用react-native-ui-kitten中的RkSwitch组件。该包只是我可以使用的一堆ui组件。
开发人员不再支持该组件,并且我的RkSwitch组件无法正常运行。
我的问题是RkSwitch
的onValueChange不执行任何操作。
render function for android
render function for 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 Link
_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)
})
看来他们正在处理onValueChange道具,但不起作用。有没有好的Javascript或React专家???
最佳答案
我没有尝试过,但是也许进入RKSwitch代码并在Animated.View周围添加<TouchableOpacity>
并将onValueChange道具输入到TouchableOpacity的onPress函数中。