I’m working on a project that allows the user to input data and update charts based on it.
Because the charts take some time to update, I chose to do it through a button, which calls a function that updates da charts.
Problem is that when the user clicks the button, the charts are updated, but not plotted on screen. As a turnaround, at the end of a the fuction I put ‘st.rerun’ so that the updated charts are plotted.
When I was using ‘st.rerun_experimental’ it did work fine, but now with ‘st.rerun’ I’m getting an infinite loop.
I’ve seen a discussion about it:
One of the solution presented was to set a key to the button and then simply delete it at the end of the function. However, I getting the following error:
StreamlitAPIException : Values for st.button, st.download_button, st.file_uploader, st.data_editor, st.chat_input, and st.form cannot be set using st.session_state.
The behaviour of st.rerun appears to have changed in version 1.28.1 fixing the endless looping reruns behind a button problem in the previous question you linked. Try upgrading to the new version.
In general, I avoid using st.rerun where there’s another solution (the st.rerun docs also gently discourage its use). Placing the widgets within an st.form or the slow code behind an st.checkbox is often a cleaner solution.
Thanks for stopping by! We use cookies to help us understand how you interact with our website.
By clicking “Accept all”, you consent to our use of cookies. For more information, please see our privacy policy.
Cookie settings
Strictly necessary cookies
These cookies are necessary for the website to function and cannot be switched off. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms.
Performance cookies
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us understand how visitors move around the site and which pages are most frequently visited.
Functional cookies
These cookies are used to record your choices and settings, maintain your preferences over time and recognize you when you return to our website. These cookies help us to personalize our content for you and remember your preferences.
Targeting cookies
These cookies may be deployed to our site by our advertising partners to build a profile of your interest and provide you with content that is relevant to you, including showing you relevant ads on other websites.