当我dispatch的时候,马上打印需要改变的值,发现并没有立刻改变;
代码如下,我查了一些文章但是依旧没有得到想要的答案,希望有大神能给我简单讲解下这是为什么?redux修改不应该是同步执行的吗?
// component.js
import { connect } from 'react-redux';
import action from '../actions/test.js';
class Test extends Component {
addnum = () => {
this.props.setaddnum(1);
console.log(this.props.state.fileMange.addnum); // 0
// 我很疑惑我点击之后不应该打印出来的是1吗?实际上这个addnum是改变了,但是没有立刻改变
};
render () {
return (
<Button onClick={this.addnum} type='primary'>click</Button>
<div>{this.props.state.fileMange.addnum}</div>
)
}
}
export default connect(state => ({ state }), action)(Test);
// test.js
export default {
setaddnum (num) {
return {
type: 'SET_ADD_NUM',
addnum: num
};
}
}
// reducers
// 初始化state数据
const initialState = {
addnum: 0
};
export default (state = initialState, action) => {
switch (action.type) {
case 'SET_ADD_NUM':
return Object.assign({}, state, { addnum: action.addnum });
default:
return state;
}
};