概要
streamlit-component-lib-react-hooksライブラリがStreamlitの再レンダリングサイクルと競合し、以下の問題を引き起こしている可能性がある:
- 行選択時に他のコンポーネントが白画面になる(ウィンドウリサイズで回復)
Received component message for unregistered ComponentInstance! の警告
提案
streamlit-component-lib-react-hooksを削除し、公式のstreamlit-component-libを直接使用する。
現在の実装
import { useRenderData } from 'streamlit-component-lib-react-hooks'
function MyComponent() {
const renderData = useRenderData()
// ...
}
提案する実装
import { Streamlit, RenderData } from 'streamlit-component-lib'
function MyComponent() {
const [renderData, setRenderData] = useState<RenderData | null>(null)
useEffect(() => {
const onRender = (event: Event) => {
setRenderData((event as CustomEvent).detail)
}
Streamlit.events.addEventListener(Streamlit.RENDER_EVENT, onRender)
Streamlit.setComponentReady()
return () => {
Streamlit.events.removeEventListener(Streamlit.RENDER_EVENT, onRender)
}
}, [])
if (!renderData) return null
// ...
}
期待される効果
- コンポーネントライフサイクルの制御性向上
- 白画面問題の解消
- 警告メッセージの削減
関連
- 白画面問題はウィンドウリサイズで回復するため、iframe高さ計算のタイミング問題と関連
概要
streamlit-component-lib-react-hooksライブラリがStreamlitの再レンダリングサイクルと競合し、以下の問題を引き起こしている可能性がある:Received component message for unregistered ComponentInstance!の警告提案
streamlit-component-lib-react-hooksを削除し、公式のstreamlit-component-libを直接使用する。現在の実装
提案する実装
期待される効果
関連