Hello! I apologise in advance if this question has been asked before, but I was only able to find examples with buttons or radio buttons (nothing with a select box).
The concept is pretty simple:
I have a list of sentence clusters that I display in a select box. The sentences in each cluster are paginated (I display only 20 at a time) and there is a page selector at the bottom of the UI (Figure below).
What I’m trying to achieve is make the page number input revert to 1 whenever the selected item in the select box changes. As of now I’m trying to do it like this:
SELECT_PAGE_WIDGET_KEY = 'select_page_widget' SELECT_CLUSTER_WIDGET = 'select_cluster_widget' def change_cluster(): SessionManagementHelper.set_cluster_table(on_cluster_selection_change(self.selected_cluster)) if st.session_state.get(SELECT_PAGE_WIDGET_KEY): st.session_state[SELECT_PAGE_WIDGET_KEY] = 1 st.selectbox( label='Cluster', options=clusters_labels, # this is a variable holding my cluster names key=SELECT_CLUSTER_WIDGET, on_change=change_cluster )
And the page number input is defined below as:
st.number_input( label='Page:', key=SELECT_PAGE_WIDGET, max_value=num_of_pages, # this is a variable holding the total number of pages min_value=1, value=1 )
At the moment however, my solution works but I get a Streamlit warning about
session_state[SELECT_PAGE_WIDGET] being set via the SessionState API before being used in a widget. Any idea on what I’m doing wrong / how to fix this?