Javascript Redux正在更改组件的状态,然后返回初始状态
我是新的Redux开发者。我正在尝试在web应用程序中使用React和Redux创建选项卡组件 当我选择一个选项卡时,我可以在控制台和Redux开发工具中确认该状态已更改,但一旦更改,它就会返回到初始状态,即发生在tabReducer.js中的“tabData”或“tabBulletin”Javascript Redux正在更改组件的状态,然后返回初始状态,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,我是新的Redux开发者。我正在尝试在web应用程序中使用React和Redux创建选项卡组件 当我选择一个选项卡时,我可以在控制台和Redux开发工具中确认该状态已更改,但一旦更改,它就会返回到初始状态,即发生在tabReducer.js中的“tabData”或“tabBulletin” const INITIAL_STATE = { selected: 'tabData' } export default (state = INITIAL_STATE, action) => {
const INITIAL_STATE = { selected: 'tabData' }
export default (state = INITIAL_STATE, action) => {
switch (action.type) {
case 'TAB_SELECTED':
return { ...state, selected: action.payload }
default:
return state
}
}
我不明白如何解决这个逻辑问题。求求你,有谁能帮我弄清楚这件事吗
多谢各位
这是与问题相关的父React标记
<TabsHeader>
<TabHeader id='tab1-tab' label='Data | 34' target='tabData' />
<TabHeader id='tab2-tab' label='Bulletins | 35' target='tabBulletin' />
</TabsHeader>
<TabsContent>
</TabsContent>
tabReducer.js
const INITIAL_STATE = { selected: 'tabData' }
export default (state = INITIAL_STATE, action) => {
switch (action.type) {
case 'TAB_SELECTED':
return { ...state, selected: action.payload }
default:
return state
}
}
你走错方向了。你在哪里读到的
dispatch => bindActionCreators({ selectTab }, dispatch)
您所需要的只是这样一个简单的分派:
dispatch => ({ selectTab: tabId => selectTab(tabId) })
就是这样。我又回来了,现在有了解决方案: 问题出现在TabHeader.js中组件的标记上: 这使得要重新加载的站点将其转换为初始状态 所以我改为javaxritp:;这解决了Redux的问题。 下面这一行是映射动作创建者的,它允许被触发发送到还原者以开发状态。我可能会丢失一个小东西,使Redux返回初始状态。我从课堂上学到了这一点。无论如何,谢谢你
const mapDispatchToProps = dispatch => bindActionCreators({ selectTab }, dispatch)
dispatch => bindActionCreators({ selectTab }, dispatch)
标记接受回答您的解决方案,以便有人与您有相同的问题。
const mapDispatchToProps = dispatch => bindActionCreators({ selectTab }, dispatch)
dispatch => bindActionCreators({ selectTab }, dispatch)