DataTable or Column leak computed properties to their children through VirtualScroller #4924
Labels
Type: Bug
Issue contains a bug related to a specific component. Something about the component is not working
Milestone
Describe the bug
Using a DataTable > Column > Custom component structure like
Makes the custom component inherit implicit computed properties coming from the DataTable / Column Primevue components. This creates performance and name clashing issues.
Since CodeSandBox does not support Vue Dev Tools, I can only post screenshots of my local DevTools findings.
PrimeVue Component / (Inside DataTable->Column)
![Screenshot 2023-12-04 at 13 23 50](https://private-user-images.githubusercontent.com/6981718/287697394-0a4423d9-4be4-47b7-a570-937caadda828.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjQ5MTQsIm5iZiI6MTczOTA2NDYxNCwicGF0aCI6Ii82OTgxNzE4LzI4NzY5NzM5NC0wYTQ0MjNkOS00YmU0LTQ3YjctYTU3MC05MzdjYWFkZGE4MjgucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIwOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMDlUMDEzMDE0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9N2I0ZGU5MGE5MDJlYTRhMTQzMGJiNWZjNjhhMjNkNzgzZmQ0OGY1NGNmYTRlMGI2M2M4MGM3YjBiMzdhMzY1MSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.P9PzgpKc4RFz_YFaPvkJwMuaKYj_3WZPRI_-TJ4fchQ)
![Screenshot 2023-12-04 at 13 24 04](https://private-user-images.githubusercontent.com/6981718/287697606-d627a867-5849-47bc-9a14-cac4e3fc0cbd.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjQ5MTQsIm5iZiI6MTczOTA2NDYxNCwicGF0aCI6Ii82OTgxNzE4LzI4NzY5NzYwNi1kNjI3YTg2Ny01ODQ5LTQ3YmMtOWExNC1jYWM0ZTNmYzBjYmQucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIwOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMDlUMDEzMDE0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YzU3ZmFkOTFjNmYyNWZhNzBlNWVmMjIzYzlkNDBhZWFiMzYyNWUwMzc3Yzc5MzI5NGM3NDkxOWE5ZjkxZTc3NiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.K6TS38QKKX8kNVE8LdDVO2gaNrn9by_0F3eBPjoSQ2k)
Custom Component (Inside Column)
![Screenshot 2023-12-04 at 13 24 16](https://private-user-images.githubusercontent.com/6981718/287697674-511e9964-57fb-4a61-9fb9-2425d15912ee.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjQ5MTQsIm5iZiI6MTczOTA2NDYxNCwicGF0aCI6Ii82OTgxNzE4LzI4NzY5NzY3NC01MTFlOTk2NC01N2ZiLTRhNjEtOWZiOS0yNDI1ZDE1OTEyZWUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIwOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMDlUMDEzMDE0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZmU5Yzc4ODcwZGUwMjBiZjA4NjUwMzJkNTMyZjNjZjI5YjViZDAwYzhmODRiYmQyYzJhM2I2MDNmMzIxNTI0NyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.MjneF7JzdigM4FuXmOuccihiJeQ4di7ZwsbZZpKtgm0)
![Screenshot 2023-12-04 at 13 24 22](https://private-user-images.githubusercontent.com/6981718/287697710-8d19c52b-85bb-4896-ba7a-808490548019.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjQ5MTQsIm5iZiI6MTczOTA2NDYxNCwicGF0aCI6Ii82OTgxNzE4LzI4NzY5NzcxMC04ZDE5YzUyYi04NWJiLTQ4OTYtYmE3YS04MDg0OTA1NDgwMTkucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIwOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMDlUMDEzMDE0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZDQwODZhNGRlZjkxZTI0ZjU5YzcxZTc5ZmU5ZDk2ZTFmZTEwZjVhYTc2MmRjNzliZGE4ZmRkNjQzZTdmNmQzNyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.GhcxuZpFEQH6A2gnHXKC8Fg4oRSAOIItmuDvE88kXww)
The leaked properties seem to come from an implicit VirtualScroller inject
![Screenshot 2023-12-05 at 10 24 41](https://private-user-images.githubusercontent.com/6981718/287989001-496fed50-b391-4c08-a4e4-543012dfdd6d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjQ5MTQsIm5iZiI6MTczOTA2NDYxNCwicGF0aCI6Ii82OTgxNzE4LzI4Nzk4OTAwMS00OTZmZWQ1MC1iMzkxLTRjMDgtYTRlNC01NDMwMTJkZmRkNmQucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIwOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMDlUMDEzMDE0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MDVhYjRlYTFiN2M2OWQ2MmRjZDY0MDU5YzQzNzI0YmNhMjYxMmUyYzVhNDVkYmU1ZGZiM2ExOWJjYTM3ZTNiMyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.EXWpwSHtgaIx3lSq_FnAR3T-u5GWIpY1BQxJqTUvtZ8)
It would be great to know why this happens and if it can be prevented in any way. I'm checking the vue 2 version, and this doesn't happen there.
Reproducer
N/A
PrimeVue version
3.15.0
Vue version
3.x
Language
ES6
Build / Runtime
Vue CLI App
Browser(s)
No response
Steps to reproduce the behavior
No response
Expected behavior
No response
The text was updated successfully, but these errors were encountered: