前提
複数ページのwebアプリを作成したいと考え、一昨日streamlitをインストールしたばかりの超初心者です。色々なサイトを参考してプログラムを作りました。
teratailでの質問も初めてですので、変な文章になっていたらすみません。
実現したいこと
ここに実現したいことを箇条書きで書いてください。
- ▲複数ページのwebアプリを作成するために、st.formを複数利用し、あるフォームのst.radioで選択されたデータを別のフォームにst.writeで表示する。
発生している問題・エラーメッセージ
エラーは発生せず実行されますが、ラジオボタンのデータが次のページで更新されません。
該当のソースコード
python
1import streamlit as st 2 3 4page = st.sidebar.selectbox("pages", ["page1", "page2"], key="page_select") #ページ識別 5 6#1ページ目:ラジオボタンでA,B,Cのどれかを選ぶ 7def page1(): 8 9 def change_pages(): 10 st.session_state["page_select"] = "page2" 11 12 with st.form(key="form1"): 13 a = st.radio("check one", ["A", "B", "C"]) 14 st.session_state.a = a 15 st.form_submit_button("submit", on_click=change_pages) 16 17#2ページ目:1ページ目で選択された文字を表示する。 18def page2(): 19 20 def change_pages(): 21 st.session_state["page_select"] = "page1" 22 23 with st.form(key="form2"): 24 st.write(st.session_state.a) 25 st.form_submit_button("back", on_click=change_pages) 26 27 28if page == "page1": 29 page1() 30elif page == "page2": 31 page2()
試したこと
フォーム内でのみラジオボタンのデータが更新されないようです。
補足情報(FW/ツールのバージョンなど)

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。