我正在創建一個React + Redux原型應用程序,我面臨的情況是我想操作提供程序組件外的DOM。什麼是在React + Redux.js應用程序中操作提供程序組件之外的DOM元素的正確方法?
我在我的陣營+終極版的應用程序根組件:
class App extends Component {
render() {
return (
<div>
<Provider store={store}>
<Main />
</Provider>
<DebugPanel top right bottom>
<DevTools store={store} monitor={LogMonitor} />
</DebugPanel>
</div>
)
}
};
我主內一個按鈕,我想用隱藏的DebugPanel。出於這個原因,我想操縱DebugPanel組件類,或者它上面的任何元素。
這使我以下的問題:
- 我將如何操作DebugPanel的className?
- 如何操作Provider組件外部的DOM元素,例如body或html標籤?
- 商店狀態更改只能在提供商內部收聽,還是我誤解了?
- 所有這些都可以用一點jQuery解決。我可以把它放到商店裏,但那會是一個有效的解決方案嗎?
- 什麼是「純正的Redux」方法?
如果你想看看代碼,它可以在我的git發現: https://github.com/JaakkoKarhu/redux-react-blockgenerator
很抱歉,如果代碼是有點亂,我可能會推有一個在很多廢話此時此刻。
我希望這個問題不是太寬泛,我正在尋找一種'最佳實踐'類型的方法。
編輯:
編輯整個問題來更好地描述什麼使我困惑。
改變了初始渲染的建議。但是我不完全明白你的答案,可能是因爲我注意到我的問題也有點不清楚。我正在尋找一種「純正的Redux」方式來做到這一點,如果有的話。 –
我編輯了整個問題,以更好地描述出什麼錯誤。對不起,如果你的答案不再適用,麻煩。 –
您的一組問題仍然多樣化,並不總是很清楚:「外部提供商」包括''(位於您的應用範圍內)和''(位於您的應用範圍之外)。最佳方法有很大差異。但無論如何,我對redux並不熟悉,所以希望其他人可以在這裏提供更有幫助的答案。 –
wintvelt