我正在创建一个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