microsoft / microsoft/react-native-windows
RNW logs excessive "UnimplementedProperty" messages in debug builds
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 17.3k
- Forks
- 1.2k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 33
Description
Problem Description
RNW attempts to log "UnimplementedProperty" messages to indicate that a prop was passed to a native control but has not been handled by that control. However, the implementation of this messaging is incomplete and results in many extraneous messages.
The problem areas include:
- All custom view managers (those constructed through ABIViewManager) will log the message for all custom properties (those not handled by the FrameworkElement hierarchy ABIViewManager extends).
- All Text elements log the message for the
isHighlightedprop that is used internally within the Text component implementation.
Steps To Reproduce
-
Create an RNW app with a custom native UI control that implements IViewManagerWithNativeProperties and render that element with a custom prop.
-
Build and run the RNW app through Visual Studio in Debug mode
-
Observe that the Output window logs an "UnimplementedProperty" message for the prop.
-
Create an RNW app with a Text element.
-
Build and run the RNW app through Visual Studio in Debug mode
-
Observe that the Output window logs an "UnimplementedProperty" message for the "isHighlighted" prop.
Expected Results
No "UnimplementedProperty" messages should be logged.
CLI version
7.0.3
Environment
System:
OS: Windows 10 10.0.19044
CPU: (12) x64 Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz
Memory: 12.01 GB / 31.92 GB
Binaries:
Node: 16.14.2 - C:\Program Files\nodejs\node.EXE
Yarn: 1.22.18 - ~\AppData\Roaming\npm\yarn.CMD
npm: 8.5.0 - C:\Program Files\nodejs\npm.CMD
Watchman: Not Found
SDKs:
Android SDK: Not Found
Windows SDK:
AllowDevelopmentWithoutDevLicense: Enabled
AllowAllTrustedApps: Enabled
Versions: 10.0.10240.0, 10.0.10586.0, 10.0.14393.0, 10.0.15063.0, 10.0.16299.0, 10.0.17134.0, 10.0.17744.0, 10.0.17763.0, 10.0.18362.0, 10.0.19041.0
IDEs:
Android Studio: Not Found
Visual Studio: 15.9.28307.1974 (Visual Studio Enterprise 2017), 16.11.32428.217 (Visual Studio Enterprise 2019)
Languages:
Java: Not Found
npmPackages:
@react-native-community/cli: 7.0.3 => 7.0.3
react: 17.0.2 => 17.0.2
react-native: 0.67.3 => 0.67.3
react-native-windows: 0.67.6 => 0.67.6
npmGlobalPackages:
*react-native*: Not Found
Target Platform Version
No response
Target Device(s)
Desktop
Visual Studio Version
Visual Studio 2019
Build Configuration
Debug
Snack, code example, screenshot, or link to a repository
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the UnimplementedProperty logging around ABIViewManager and IViewManagerWithNativeProperties, then inspect the internal isHighlighted use in vnext/src/Libraries/Text/Text.windows.js. Reproduce both custom-control and Text cases in a Debug build through Visual Studio. Done means neither scenario logs an UnimplementedProperty message.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, react-native
- Domain
- desktop-dev, frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100