【发布时间】:2018-03-29 08:39:17
【问题描述】:
我正在学习 Redux,但我无法正确理解它。 现在我正在用它构建一个个人项目来学习它。
我在导航栏上有这个“设置按钮”(实际上,它是一个列表项)。当我单击它时,我希望另一个组件显示出来。这将是<Settings /> 组件。该组件有一个“关闭按钮”可以隐藏。
我的想法是在 redux 全局存储上拥有这样的属性:settingsOpen: false,当我单击按钮时,它变为 true,组件出现,反之亦然。关闭按钮始终将属性设置为 false 并关闭组件。
这里你可以找到所有代码:https://github.com/lbluigi/react-ecommerce
无论如何,我认为重要的部分是:
Header.js 组件
这是会切换设置组件的单击列表项。
<a onClick={(event) => this.props.toggleSettings(event)} href="#settings" className="nav-link"><i className="fa fa-cog" aria-hidden="true"></i> Settings</a>
Settings.js 组件
这是必须根据settingsOpens 属性出现和消失的组件。
<div className={this.props.settings.settingsOpen ? 'settings' : 'hidden'}>
<i className="fa fa-times fa-3x" aria-hidden="true"></i>
{/* just a test <h2>{this.props.settings.themeColor}</h2> */}
</div>
toggleSettings.js 操作 这是我之前写的设置按钮点击事件触发的功能。
event.preventDefault();
return {
type: 'SETTINGS_TOGGLED'
}
settingsReducer.js 减速器
这是设置初始属性的化简器,用户可以通过与 Settings 组件交互来更改这些属性。
{
settingsOpen: false,
themeColor: 'light',
gridView: 'grid'
}
我可以写更多,但你会在我之前链接的 GitHub 存储库上找到所有内容。我不知道如何在点击时更改属性settingsOpen。
【问题讨论】:
-
你能发布完整的文件吗?
toggleSettings是做什么的?你的渲染方法是什么样的?您在哪里将您的操作发送到商店?没有人愿意为了帮助而去你的 github 并挖掘你的 repo。
标签: javascript reactjs redux react-redux store