关于React JSX中panResponder的平台

问题描述 投票:0回答:1

我使用的是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}”中“{...}”是什么意思?

android ios react-native jsx react-native-ios
1个回答
0
投票

就像这样创建这个对象时:

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

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

        }
    }) : {};

关于 ”{...}” :

Spread_operator

© www.soinside.com 2019 - 2024. All rights reserved.