【发布时间】:2018-08-18 20:52:50
【问题描述】:
我不明白为什么在成功操作和存储更新后 react 没有重新渲染。我不认为我正在改变我的减速器中的状态,因为我在我的反应组件中执行所有算术,然后通过调度发送对象。我的反应组件已连接并连接了 mapStateToProps。任何帮助将不胜感激。
下面是我的反应组件。
const mapStateToProps = (state) =>({
name:state.user.name,
email:state.user.email,
password:state.user.password,
skill:state.user.skill,
goal:state.user.goal,
step1:state.user.step1,
step2:state.user.step2,
step3:state.user.step3,
step4:state.user.step4,
step5:state.user.step5,
completed:state.user.completed,
})
const mapDispatchToProps = (dispatch) => ({
callApi: (value, state) => {
var obj = {
date:moment.tz(moment.tz.guess()).format(),
post:state.post,
email:state.email,
completed:(parseFloat(state.completed) + .75),
}
API.addPost(obj)
.then(function(res){
dispatch(updateUser(res.data))
})
}
})
export default connect(mapStateToProps,mapDispatchToProps)(YourPage);
我的减速器
import {UPDATE_USER, CREATE_USER,CREATE_SKILL,CHECK_USER} from '../actions/index';
const DEFAULT_STATE =
{
createdAt:"",
name:"",
email:"",
password:"",
skill:"",
goal:"",
step1:"",
step2:"",
step3:"",
step4:"",
step5:"",
posts:[],
completed:0
}
export default function(state = DEFAULT_STATE, action) {
if (action.error) {
action.type = 'HANDLE_ERROR'; // change the type
}
switch (action.type) {
case UPDATE_USER:
return Object.assign({},state,{
completed:action.payload.completed
})
【问题讨论】:
-
@Colin,你确定吗?据我所知,
prop的更改会导致重新渲染,除非我们采取措施阻止它。
标签: javascript reactjs redux