Hi.
I made renderer for markdown text, it works recursively with marked.js lexer (semantic tree). The idea is that text like This is **bold _italic_**
turns into multiple nested <Text />
components:
<Text>
This is
<Text style={styles.strong}>bold <Text style={styles.em}>italic</Text>
</Text>
</Text>
Because I don’t know depth of each element in semantic tree (marked.lexer), I render it recursively, please you can see the whole code here: MarkdownRenderer.
When I add selectable={true}
to wrapper Text component (in real code it is here):
<Text selectable={true}>
<MarkdownRenderer markdownText={someText} />
</Text>
in Expo Go client the text immediately (after hot reload) became selectable! But, if I reload the app, or build it, the text is not selectable anymore.
I tried to put selectable={true}
to different levels of nesting: first, end, any level etc. But a result is the same.
In Expo web text became selectable…
I have spent 24 hours trying any hypothesis that I could imagine, but I didn’t find the answer and so tired :-D.
Please share your opinion on this problem.
expo diagnostics
:
Expo CLI 4.3.2 environment info:
System:
OS: Linux 5.8 Ubuntu 20.04.2 LTS (Focal Fossa)
Shell: 5.0.17 - /bin/bash
Binaries:
Node: 14.15.2 - /usr/local/bin/node
Yarn: 1.22.5 - /usr/bin/yarn
npm: 7.6.3 - /usr/local/bin/npm
npmPackages:
expo: ^40.0.1 => 40.0.1
react: ^16.13.1 => 16.13.1
react-dom: ^16.13.1 => 16.13.1
react-native: ^0.63.2 => 0.63.2
react-native-web: ^0.13.18 => 0.13.18
npmGlobalPackages:
expo-cli: 4.3.2
Expo Workflow: managed