【发布时间】:2017-10-05 07:00:06
【问题描述】:
我正在编写代码以使用 redux 应用主题。 这是我的代码:
Actions/index.js
export const CHANGE_THEME = 'CHANGE_THEME';
export const changeTheme = (payload) => {
console.log('payload ' + payload)
return ({
type: CHANGE_THEME,
payload
})}
reducers/index.js
import { combineReducers } from 'redux'
import themeChangeHandler from './themeChangeHandler'
const rightBarMenuHandler = combineReducers({
themeChangeHandler
})
export default rightBarMenuHandler
themeChangeHandler.js
const themeChangeHandler = (state = 'light', action) => {
console.log('rec action ' + action.type)
switch(action.type) {
case 'CHANGE_THEME':
return action.payload
default:
return state
}
}
export default themeChangeHandler
事件正在使用 Menu/MenuItem
class AppBarRightButtonsMenu extends Component {
constructor(props) {
super(props);
}
onClickButton = (data) => {
this.props.dispatch(changeTheme('dark'))
}
render() {
const {onThemeChange, onLogout, dispatch} = this.props;
var i = 1;
if(NavigationButtonMenu) {
var list = NavigationButtonMenu.map( (menuItem) => {
return <MenuItem key={i++} primaryText={menuItem.name} onClick = {this.onClickButton}/>;
});
return <Menu >{list}</Menu>;
} else {
return <div/>
}
}
}
export default connect()(AppBarRightButtonsMenu);
App.js
const App = ({theme}) => (
<SomeComp
theme={theme}
/>
function mapStateToProps(state) {
console.log('state.themeChangeHandler ' + state.themeChangeHandler)
return {
theme: state.themeChangeHandler === 'dark'?darkBaseTheme:customTheme,
};
}
export default connect(mapStateToProps, null) (App);
添加商店
const store = createStore(reducers)
ReactDOM.render(<Provider store={store}>
<App />
</Provider>, document.getElementById('root'));
registerServiceWorker();
我只是在操作中获得控制台日志,而不是在减速器中的那个(我在启动时获得减速器的测试日志)。我做错了什么?
【问题讨论】:
-
您在哪里创建了商店
标签: reactjs react-redux