React native 在Android上无法选择FlatList中的文本

React native 在Android上无法选择FlatList中的文本,react-native,react-native-android,React Native,React Native Android,我刚刚将我的应用程序从React Native 0.58.5升级到0.61.2,现在我无法在Android上选择FlatList中的文本 我尝试在React Native 58.5的文本组件中设置selectable={true},它运行良好,可以复制文本中的内容。 但是在将React本机版本从0.58.5升级到0.61.2之后,无法选择文本来复制/粘贴Android 9.0中的内容。 实际上它在安卓5.0上运行,但在安卓9.0上不起作用 export default class App ext

我刚刚将我的应用程序从React Native 0.58.5升级到0.61.2,现在我无法在Android上选择FlatList中的文本

我尝试在React Native 58.5的文本组件中设置selectable={true},它运行良好,可以复制文本中的内容。 但是在将React本机版本从0.58.5升级到0.61.2之后,无法选择文本来复制/粘贴Android 9.0中的内容。 实际上它在安卓5.0上运行,但在安卓9.0上不起作用

export default class App extends React.Component {
  _renderItem = ({item}) => {
    return (
      <View>
        <Text selectable>{item}</Text>
      </View>
    )
  }

  _keyExtractor = (item, index) => index.toString();

  render() {
    return (
      <View style={styles.container}>
        <Text selectable>This is selectable Text...</Text>
        <FlatList
          data={['not selectable text', 'not selectable text']}
          renderItem={this._renderItem}
          keyExtractor={this._keyExtractor}
        />
      </View>
    );
  }
}
导出默认类App扩展React.Component{
_renderItem=({item})=>{
返回(
{item}
)
}
_keyExtractor=(项,索引)=>index.toString();
render(){
返回(
这是可选文本。。。
);
}
}
预期行为:Flatlist中的文本应该是可选的


当前行为:无法选择文本组件,即使在Android 9.0中设置可选={true},您应该将其括在touchableopacity中

export default class App extends React.Component {
  _renderItem = ({item}) => {
    return (
      <View>
        <Text selectable>{item}</Text>
      </View>
    )
  }

  _keyExtractor = (item, index) => index.toString();

  render() {
    return (
      <View style={styles.container}>
        <Text selectable>This is selectable Text...</Text>
        <FlatList
          data={['not selectable text', 'not selectable text']}
          renderItem={this._renderItem}
          keyExtractor={this._keyExtractor}
        />
      </View>
    );
  }
}
<TouchableOpacity style={{ flex: 1 }} 
     onPress={() =>}}>     
        <View>
         <Text selectable>{item}</Text>
        </View>
   </TouchableOpacity>
}>
{item}

我通过在文本组件中添加一个关键道具解决了这个问题:

<Text selectable={true} key={Math.random()}>
   {text}
</Text>

{text}

编辑:上述解决方案似乎并不适用于所有RN版本,另一种解决方案是在
FlatList

上设置
removeClippedSubviews={false}
,不幸的是,文本可选择项不起作用,即使用TouchabeOpacity或touchabewithoutfeedback with disabled={true}当我尝试长时间单击项目时,它返回了一条消息
W/TextView:TextView不支持文本选择。选择已取消。
我尝试了此解决方案,但它暂时起作用,但随后停止工作,代码没有任何更改。不知道为什么:/你找到什么解决办法了吗?