我刚刚将我的应用程序从React Native 0.58.5升级到0.61.2,现在我无法在Android的FlatList中选择文本。
我试图在React Native 58.5的Text组件中设置selectable = {true},它运行良好并且可以复制Text中的内容。 但是在将React Native版本从0.58.5升级到0.61.2之后,无法选择用于复制/粘贴Android 9.0中内容的文本。 实际上它可以在Android 5.0上运行,但不能在Android 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>
);
}
}
预期的行为:Flatlist中的文本应该是可选的。
当前行为:即使在Android 9.0中设置了selectable = {true},也无法选择Text组件
答案 0 :(得分:1)
您应该将其围成可触摸的透明度。
<TouchableOpacity style={{ flex: 1 }}
onPress={() =>}}>
<View>
<Text selectable>{item}</Text>
</View>
</TouchableOpacity>
答案 1 :(得分:1)
我通过在Text组件中添加一个关键道具来解决此问题:
<Text selectable={true} key={Math.random()}>
{text}
</Text>
编辑:上面的解决方案似乎不适用于所有RN版本,替代解决方案是在removeClippedSubviews={false}
上设置FlatList