0

我最近发现onStartShouldSetResponderReact Native 中的 Pressable 组件不调用该方法。这很令人困惑,因为onStartShouldSetResponder在使用 typescript 时,该方法在 Pressable API 中可用。

这是一个错误吗?Pressable API 是否会覆盖该onStartShouldSetResponder方法?

在提交文档更新请求之前,我想确保我没有弄错。谢谢!

重现步骤:

  1. https://snack.expo.dev/
  2. 将以下示例代码粘贴到 App.js 文件中,并注意在点击 Pressable 中包裹的文本时不会调用 onStartShouldSetResponder 方法。
//This is an example of online Emulator by https://aboutreact.com
import React from 'react';
import { Text, View, StyleSheet, Pressable } from 'react-native';

const App = () => {
  return (
    <View style={styles.container}>
      <Text style={styles.paragraph}>Hello AboutReact</Text>

      <Pressable onPress={() => console.log('I was pressed')}
        onStartShouldSetResponder={() => {
          console.log('onStartShouldSetResponder: Why am I not being called?')
          return false;
        }}
        onStartShouldSetResponderCapture={() => {
          console.log('onStartShouldSetResponderCapture: I am being called correctly')
          return false;
        }}
      >
        <Text style={styles.text}>I should not respond</Text>
      </Pressable>
    </View>
  );
};

export default App;

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    padding: 8,
    backgroundColor: 'white',
  },
  text: {
    backgroundColor: 'gray',
    padding: 5,
  },
  paragraph: {
    margin: 24,
    fontSize: 18,
    fontWeight: 'bold',
    textAlign: 'center',
  },
});

4

0 回答 0