I've been building Common Components inside the Component Library so that they can be easily used across Power Apps.
I sometimes go back to the Common Component to add more functionality after is has been imported into a Power App.
This includes adding new inputs and/or outputs. After changes, I then Save and Publish the Component Library.
What I have noticed, is that sometimes afterI have added new inputs, when I Review changes in a Power App and accept the udpate, the Common Component used throughout the App has not updated properly.
I have seen the new inputs come through, but it has then lost some of the old inputs, which should still be there.
And by lost, I mean that they are no longer available to be set.
In the Component Library, it is all fine, but not in my Power App.
Sometimes, I have used the component in many places, so I do not want to remove the component and reimport it.
It should just work and update properly.
In the example below, I added a new input called "Default Multi Selections".
After I update the component inthe Power App, I get the new "Default Multi Selections", but I have now lost "Default Selection".
I guess this is the normal behavior: as you have edited the component in your Power Apps, a local copy has been created. This copy will not received the updates when you change the main component.
This is mentionned in documentation - Known Limitations:
If you import a component from a component library, you can't edit it inside the consuming app. If you select Edit component, you'll see an option to create a copy of the component inside the current app for you to make changes:
If you select Create a copy, the component is copied to the local app. The local copy of the component appears under the Custom category in the Insert pane. This local copy of the component won't receive updates if a new version of the originating component library is published later.
@lcimon I did not create a local copy in the Power App. I never edit it because I want to be able to make updates in the Component Library and be able to update.
So, I updated the Component Library.
Back in my Power App, it detected a change and I accepted the update. The new update Input parameter came through. But it lost an existing Input parameter that I did not delete from the Component Library.
Ok, so, Component Libraries are super buggy.
I can't believe that PowerApps has been around so long, but Component Libraries are in Preview and are super buggy.
In this particular case:
The problem with this method, is that now any other PowerApps that use this common component will show up as needing a Review, and if I update in those, I sometimes have problems that should not exist, and I end up in a vicous cycle going through the above steps.
I've also found in other cases where I update a Common Component from the Component Library, where upon update in a Power App, it can have strange appearance and behaviour. In these cases:
I come from a background programming in the R programming language with Shiny as the App presentation layer. In there, I have written packages with functions and Shiny Modules (where Shiny Modules are equivalent to Common Components) to make it easier for my team to utilise repetitive code and ensure some consistency in the apps we create. Hence, when I started in Power Apps and learnt about the Component Library, I jumped straight into creating Common Components for my team. I create them in the Component Library and build test cases in the Screens page that exists in the Component Library. But then, when my team mates (or myself) import these, they don't always work the same as in testing! Super buggy.
@BenGin, I'm also regularly facing issues with Reusable Component.
A common issue is: components aren't properly rendered in the Power Appts Studio, but when app is opened as an end user, that work.
For your case, I suggest you to contact Microsoft to share with them your findings.
I've found a 'hacky' fix is to move the updated component in your app by dragging it, then clicking 'undo'. This causes PowerApps to crash, and when it comes back up, the component will be working again like magic.