for an application I need a slider that selects an index for data to display. This slider is only needed after the first iteration though, which makes it tough to implement (at least for me…).
import streamlit as st import numpy as np import time def add_locations(iteration_number): # add new locations locations.append(np.random.rand(iteration_number, 2)) iteration_number = 0 locations =  i = 0 # selected index # create widget for slider slider_container = st.empty() loc_container = st.empty() while True: iteration_number += 1 add_locations(iteration_number) #add slider if iteration_number > 1: i = slider_container.slider('Iteration', min_value=1, max_value=iteration_number, step=1) loc_container.write(locations[i - 1]) time.sleep(5) if iteration_number == 5: break
What I want:
- on the first iteration the first locations generated are shown
- on the second the user can choose betweeen 1st and 2nd data (and so on)
- for every iteration the value of the slider should stay at its old value, i.e., if I am looking at data from index 2 and data for index 3 was added I want the slider to change but to (1, 3) with value 2 so that the data does not change
- Once I slide the slider the routine starts again instead of just showing the different data.
- I think session states are important for the slider to stay at its current value. Since I create the slider every iteration. I cant give it a key though which hinders me using session states
Any help would be highly appreciated