首页 文章

是否可以做出反应(没有通量,还原等)以使子组件具有状态或根组件应该存储状态

提问于
浏览
2

我一直在阅读(我只是使用react来创建测试应用程序来查看反应是如何工作的)状态应该存储在根组件中,当状态改变时,应该重新呈现整个树 .

目前我已经创建了一个bootstrap导航栏 .

root
--> NavBar
    --> NavHeader
    --> NavMenuBar
        --> NavMenuItem
            ...
--> PageContent
--> Footer

我将活动菜单项存储在NavMenuBar组件中 . 然后,当单击菜单项或其中一个子项时,将使用回调来更新NavMenuBar中的状态,并对重新呈现的菜单项进行反应 .

这工作正常,但现在我想知道我是否应该将活动菜单项存储在NavMenuBar组件中 . 我应该将状态存储在根组件中并移动回调方法以更新菜单状态吗?我不明白为什么root应用程序需要跟踪活动菜单项,但很多博客/文章建议我应该使用所有状态的根组件,但在这个FB页面上:

https://facebook.github.io/react/docs/thinking-in-react.html

在“第4步:确定你的国家应该在哪里”,他们说你应该找到一个共同的父母来存储国家,而不是提到将所有东西存储在根目录中 .

PS:我知道有一个用于渲染BS导航栏的NPM组件,但我自己这样做是为了更多地了解反应 .

3 回答

相关问题