I want click-and-hold-to-select-text using a Text component and then i searched it and i found selectable
property.It good works but it copy the entire text field.I want to selecting a subset of the text field for copying.Actually this question is asked on stackoverflow .Here is question on stackoverflow:http://stackoverflow.com/a/37119619/4596143
I try this code block:
<Text
selectable={true}
style={styles.messageBody}>
{"text description"}
</Text>
This full of text ("text description") can copy not partially .I want to it like screenshot
Actual behaviour:
Expected behavior:
They are said that RN 0.39 adds support to copy the entire text field, but does not yet include support for selecting a subset of the text field for copying on stackoverflow .I wonder Text
component include support for selecting a subset of the text field for copying on new versions for react native.If the property does not exist on new versions ,will the property for text integrate ?
Hi there! This issue is being closed because it has been inactive for a while. Maybe the issue has been fixed in a recent release, or perhaps it is not affecting a lot of people. Either way, we're automatically closing issues after a period of inactivity. Please do not take it personally!
If you think this issue should definitely remain open, please let us know. The following information is helpful when it comes to determining if the issue should be re-opened:
If you would like to work on a patch to fix the issue, contributions are very welcome! Read through the contribution guide, and feel free to hop into #react-native if you need help planning your contribution.
This is still reproducible with "react-native": "0.49.0"
@hramos Could you please reopen that?
Adding selectable={true} or selectable is not working.
v 0.51-RC
For me, both platforms are existing different problems :
In IOS, adding selectable={true} or selectable is not working for selecting partially text
In Android: adding selectable={true} or selectable is working but the nested image in text is disappeared for SOME devices
Environment: React Native v0.51
I really need this feature... I'm on 0.52 v and I only can see "Copy" but not the expected behavior as it is said. Someone knows if there is a way to do so?
@pausabe If you really want this and you dont have complex nested component in Text component. Just using TextInput instead of Text and pass editable={false} as the prop and set the padding and margin as 0. The behavior is just same as Text but selectable. Hope this help.
Thanks @tikkichan4! I've tried this in a simple text with the editable={false} but the text is not selectable...
Besides, I need this for complex nested Text so I image that this is not the way I should do it.
I hope Text component becomes more completed with this feature some day!
I think this feature is necessary.
+1
@yasemincidem Have you found a solution?
This issue looks like a question and not an actual bug report. Please try asking over on Stack Overflow instead.
Hello guys,
How I can get the word selected when set selectable={true}
Can you tell me?
Ths.
@BichCNTT you can try this https://github.com/status-im/status-react/issues/3616
@react-native-bot this issue should be reopened
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
this issue should be reopened again
Here is a temporary solution。
{imageText.length > 0 &&
device.ios && (
<AutoGrowingTextInput
scrollEnabled={false}
value={` ${imageText}`}
editable={false}
/>
)}
{imageText.length > 0 &&
device.android && (
<Text selectable>
{' '}
{imageText}
</Text>
)}
I've published a workaround for now if you're interested: https://github.com/msand/react-native-selectable-text
It's only needed on Android, and works as a drop-in replacement for a TextInput with these specific values on iOS, as TextInput with editable: false already works correctly there. TextInput on Android either fills most of the screen with the keyboard, or disables the ability to select and respond to selection changes. I would assume this component only works well for the specific use-case I had, haven't tested it for any other prop values.
import SelectableText from 'react-native-selectable-text';
export default ({ text, onSelectionChange }) => (
<SelectableText
selectable
multiline
contextMenuHidden
scrollEnabled={false}
editable={false}
onSelectionChange={onSelectionChange}
style={{
color: "#BAB6C8",
}}
value={text}
/>);
My solution is to use https://www.npmjs.com/package/react-native-webview-autoheight and load text as html.
React-Native 0.59 version. Only show COPY when long press.
Edit: Seems only work for Android version. IOS don't have this feature.
Use a <TextInput/>
on iOS to allow multiple actions and use a regular <Text/>
on Android. That will allow specific word selection on both platforms. No linking. No native libraries. Just use this:
import { Platform } from 'react-native';
// ...
{Platform.OS === 'ios' ? (
// iOS requires a textinput for word selections
<TextInput
value={description}
editable={false}
multiline
/>
) : (
// Android can do word selections just with <Text>
<Text selectable>{description}</Text>
)}
Result, Android:
Result, iOS:
I test version 0.59.10 but selectable
did not work. Does anyone have same error?
@scarlac
Thanks for the workaround. How do you treat nested <TextInput />
? It seems to accept type of string
.
@acro5piano TextInput cannot be nested in another TextInput. Un-nest your texts to make them selectable. If you need rich text formatting I unfortunately don't have an answer.
@hoanvnbka selectable
is a react native feature that's usually reliable on iOS. On Android, the Emulator tends to stop responding to the long press after a while, so you'll need to restart the emulator to fix it. If you still need help, _you need to provide more information than 'did not work'_. Try posting on Stack Overflow with the solution I gave, a detailed explanation of the problem and what you tried to fix it.
@scarlac
Thank you for your answer!
Most helpful comment
I think this feature is necessary.