我沒有使用Redux或Flux或任何框架。 我有一個React組件,我想重複使用多個頁面。如何從全局訪問React組件的狀態?
它有一個狀態來控制它的可見性。
如何進入組件並從標準HTML按鈕觸發狀態?
大多數答案都指向Redux/Flux/MobX,但它們是用於SPA的,但是我的平板頁面沒有框架安裝React組件。
我沒有使用Redux或Flux或任何框架。 我有一個React組件,我想重複使用多個頁面。如何從全局訪問React組件的狀態?
它有一個狀態來控制它的可見性。
如何進入組件並從標準HTML按鈕觸發狀態?
大多數答案都指向Redux/Flux/MobX,但它們是用於SPA的,但是我的平板頁面沒有框架安裝React組件。
假設您的standard HTML Button
未在React Component
內呈現,您可以從React組件監聽HTML元素的事件。假設我們在HTML文件中有靜按鈕:
<button id="buttonA">Toggle Visibility</button>
裏面我們的陣營組成部分,我們可以聽單擊事件,此元素和更新我們的狀態設置的瀏覽權限:
componentDidMount() {
// here we are listening our hard-coded static HTML Element's click event
// And update our state based on this.
document.getElementById('buttonA').addEventListener("click", e => {
this.setState({hidden: !this.state.hidden})
})
}
這裏是一個working example on CodePen 。你可以玩它。
我會添加一個隱藏的'輸入'來存儲可見值,使用'ReactDOM'來獲取它 –
這是標準的HTML按鈕在React組件或HTML文件中呈現爲硬編碼嗎? – alix