当我将console.log('test')
语句放入减速器时,我可以在调用操作时在控制台中看到它们。但我没有在控制台中看到 redux“NEXT STATE”/“PREV STATE”的东西。
有什么基本的我可能会丢失吗?
在下面的代码中 - 我不是试图实现任何真正的功能,我只是试图设置 redux 并在控制台中查看状态变化(所以我知道我在正确的路径上)。
容器
import React, { PropTypes } from 'react-native';
import Header from './Header';
import { connect } from 'react-redux';
import { leave } from './actions';
import { join } from './actions';
const mapStateToProps = (state) => {
return {
in: state.in
}
}
const mapDispatchToProps = (dispatch) => {
return {
join: (id) => {
dispatch(join(id))
},
leave: (id) => {
dispatch(leave(id))
}
}
}
export default connect(mapStateToProps, mapDispatchToProps)(Header);
减速器
export default function Header(state = { in: false }, action = {}) {
switch (action.type) {
case 'LEAVE':
return {
...state,
in: false
}
case 'JOIN':
console.log(state);
console.log(action);
console.log('join');
return {
...state,
in: true
}
default:
return state;
}
}
行动
export const join = (id) => {
return {
type: 'JOIN',
payload: {
in: true
}
}
}
export const leave = (id) => {
return {
type: 'LEAVE',
payload: {
in: false
}
}
}