React native 在Android上无法选择FlatList中的文本
我刚刚将我的应用程序从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上不起作用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
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不支持文本选择。选择已取消。
我尝试了此解决方案,但它暂时起作用,但随后停止工作,代码没有任何更改。不知道为什么:/你找到什么解决办法了吗?