I have a listView which is populated by a custom API query. Inside this list view are components displaying a picture and some information about various properties.
The eye icon on the bottom right of the component tells the user if they have already seen that property before. My listView is filtering on whether the property returned by the API has been seen or not. It uses a value from the API as well as an app state as I do not want to requery everytime a user marks a property as seen. Assuming they haven't, the listView displays only 'new' properties in the new tab. When a user clicks on the eye icon, an action updates an app state, and a value in my database, to set that property as seen. However, the listView itself does not update and refilter, so the now 'marked as seen' property will still show up in the new tab. If I move to the seen tab, and then navigate back to the new tab, then the property I had marked as 'seen' will no longer be visible as expected.
The solution I have implemented to get this working is to use "rebuild all pages" when updating the app state. I don't really want to do this as I only want to rebuild this particular page, as these changes only impact my home page with the list views. Before (when it didn't work), I had set the "Update page on changes" to true and in my action I used the "rebuild containing page" (instead of rebuild all pages). This didn't work though, and nothing would update until I visited a new tab/page and returned.
So my question is: why did my first logic not work and is there a way to get this to work without rebuilding all the pages?