关于React JSX中panResponder的平台

时间:2018-01-02 06:59:21

标签: android ios react-native jsx react-native-ios

我正在使用ReactNative panResponder。我把一个NativeView嵌套在View中。 android NativeView已经处理了gestureEvent,因此ReactNative _panHandlers只需要在iOS中添加。

关于这个_panHandlers,将ios和Android分开只是这种丑陋的方式吗?

     if (Platform.OS === 'ios') {
        return (<View style={styles.container} 
                {...this._panResponder.panHandlers}>
            <NativeView/>
        </View>);
    } else {
        return (<View style={styles.container}>
            <NativeView/>
        </View>);
    }

有没有像这种风格?

  <View  style={if (Platform.OS === 'ios')?{}:{}} />

“{... this._panResponder.panHandlers}”中的“{...}”是什么意思?

1 个答案:

答案 0 :(得分:0)

创建此对象时就像这样:

    this._panResponder = Platform.OS === 'ios' ? PanResponder.create({
        onMoveShouldSetPanResponderCapture: (e, gestureState) => {
            return false;
        },
        onPanResponderMove: (evt, gs) => {

        },
        onPanResponderRelease: (evt, gs) => {

        }
    }) : {};

关于“{...}”:

Spread_operator