0

我正在使用 react-native-ui-kitten 中的 RkSwitch 组件。该软件包只是我可以使用的一堆 ui 组件。

开发人员不再支持该组件,并且我的 RkSwitch 组件无法按预期工作。

我的问题是RkSwitch's onValueChange 没有做任何事情。

android <- 的渲染功能不起作用。(问题

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 的实际代码。(这是安卓版本)。 文档链接

_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 专家???

4

1 回答 1

1

我还没有尝试过,但可能会进入 RKSwitch 代码并<TouchableOpacity>在 Animated.View 周围添加一个并将 onValueChange 道具提供给 TouchableOpacity 的 onPress 函数。

于 2017-11-28T21:03:37.987 回答