the app crashes while rendering the table on Android. `table-plugin`
ardasnturk opened this issue · 0 comments
ardasnturk commented
Decision Table
- My issue does not look like “The HTML attribute 'xxx' is ignored” (unless we claim support for it)
- My issue does not look like “The HTML element
<yyy>
is not rendered”
Good Faith Declaration
- I have read the HELP document here: https://git.io/JBi6R
- I have read the CONTRIBUTING document here: https://git.io/JJ0Pg
- I have confirmed that this bug has not been reported yet
Description
I want to create a table like the one below. While creating this table, my Android device crashes. I tried to capture the crash log on the device with adb logcat, but I couldn't get much information. Where could this problem be coming from? There is no problem for iOS and it works smoothly.
<figure class="table">
<table>
<tbody>
<tr>
<td><strong>Person responsible:</strong></td>
<td>
<p style="text-align:justify;"><strong>Partner</strong></p>
</td>
</tr>
<tr>
<td>
<p style="text-align:justify;">City</p>
</td>
<td>
<p style="text-align:justify;">City</p>
</td>
</tr>
<tr>
<td>
<p style="text-align:justify;">Person</p>
</td>
<td>- person - </td>
</tr>
<tr>
<td>
<p style="text-align:justify;">Address</p>
</td>
<td>
<p style="text-align:justify;">City</p>
</td>
</tr>
<tr>
<td>
<p style="text-align:justify;">Post</p>
</td>
<td>
<p style="text-align:justify;">Address</p>
</td>
</tr>
<tr>
<td>
<p style="text-align:justify;"> </p>
</td>
<td>
<p style="text-align:justify;">Post</p>
</td>
</tr>
<tr>
<td>
<p style="text-align:justify;"> </p>
</td>
<td>
<p style="text-align:justify;"> </p>
</td>
</tr>
<tr>
<td>
<p style="text-align:justify;">Telefon: 0....</p>
</td>
<td>
<p style="text-align:justify;"> </p>
</td>
</tr>
<tr>
<td>
<p style="text-align:justify;">E-Mail</p>
</td>
<td>
<p style="text-align:justify;">E-Mail</p>
</td>
</tr>
</tbody>
</table>
</figure>
My code:
const renderers = {
iframe: IframeRenderer,
table: TableRenderer
};
const htmlConfig = {
WebView,
renderers,
customHTMLElementModels: {
iframe: iframeModel,
table: tableModel
}
};
export const HtmlView = memo(({ html, openWebScreen }) => {
return (
<HTML
source={{ html }}
{...htmlConfig}
renderersProps={{
a: { onPress: (evt, href) => openLink(href, openWebScreen) },
iframe: {
scalesPageToFit: true,
webViewProps: {
// the opacity of the iframe was set to 0.99 to solve the crashing problem on Android
// thanks to : https://github.com/meliorence/react-native-render-html/issues/393#issuecomment-1277533605
style: { opacity: 0.99 }
}
},
table: { cssRules }
}}
domVisitors={{
onElement: (node) => {
if (node.name === 'img' || node.name === 'iframe') {
delete node.attribs.width;
delete node.attribs.height;
}
return node.children;
}
}}
systemFonts={['regular', 'bold', 'italic', 'bold-italic']}
/>
);
});
React Native Information
expo-env-info 1.2.0 environment info:
System:
OS: macOS 14.3.1
Shell: 5.9 - /bin/zsh
Binaries:
Node: 16.13.0 - ~/.nvm/versions/node/v16.13.0/bin/node
Yarn: 1.22.19 - /opt/homebrew/bin/yarn
npm: 9.6.7 - ~/.nvm/versions/node/v16.13.0/bin/npm
Watchman: 2023.05.22.00 - /opt/homebrew/bin/watchman
Managers:
CocoaPods: 1.12.1 - /opt/homebrew/lib/ruby/gems/3.1.0/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 23.2, iOS 17.2, macOS 14.2, tvOS 17.2, visionOS 1.0, watchOS 10.2
IDEs:
Android Studio: 2022.2 AI-222.4459.24.2221.10121639
Xcode: 15.2/15C500b - /usr/bin/xcodebuild
npmGlobalPackages:
eas-cli: 7.1.3
expo-cli: 6.3.10
RNRH Version
"@native-html/table-plugin": "^5.3.1",
"react-native-render-html": "^6.3.4",
Tested Platforms
- Android
- iOS
- Web
- MacOS
- Windows
Reproduction Platforms
- Android
- iOS
- Web
- MacOS
- Windows
Minimal, Reproducible Example
https://snack.expo.dev/@ikusei/rnrhtml-template
Additional Notes
No response