componentWillReceiveProps只触发了一次

#1

index页面:


reducer:

reSelect:

saga:

问题:执行完“return state.set(‘currentUser’, action.getUser);”就可以触发componentWillReceiveProps
但是执行完“return state.set(‘currentFactoryUser’, action.getFactoryUser);”之后,没有任何反应。为什么?

#2

应该是你的saga写的有问题吧。

takeLatest(ActionTypes.AFTER_SUCCESS_LOGIN, afterSuccessLogin)

确定AFTER_SUCCESS_LOGIN 这个对吗???

#3

这是actionTypes
export const START_LOGIN = ‘START_LOGIN’;
export const SUCCESS_LOGIN = ‘SUCCESS_LOGIN’;//对应currentUser
export const SUCCESS_LOGIN_FACTORYUSER = ‘SUCCESS_LOGIN_FACTORYUSER’;//对应currentFactoryUser
export const AFTER_SUCCESS_LOGIN = ‘AFTER_SUCCESS_LOGIN’;
export const EXIT_LOGIN = ‘EXIT_LOGIN’;

#4

确定ActionTypes.AFTER_SUCCESS_LOGIN 这个状态有dispatch吗?
也就是说你的afterSuccessLogin 这个 generator 执行了吗?

#5

有执行啊


#6

SUCCESS_LOGIN执行以后有个LOCATION_CHANGE,这里有url的改变吗?

#7

有,从登录页变到了首页

#9

你的首页是index.js吗?

#10

登录页就是这个截图的index.js,首页的是另外一个index.js,就是this.props.changeRoute(’/HomePage’),

#11

页面跳转到首页了,登录页面就被卸载了,不可能在执行登录这面里面的componentWillReceiveProps了。

#12

那我把这句话放上面呢?
这样好像也不行。。。

#13

页面都跳转了 所以react真正渲染的是首页的index.js, 你应该在首页的index.js里面做搓作

#14

嗯,应该是页面跳转导致的,不能这样写。

#15

页面中转是根据返回的数据,进行中转的吗?
如果是这样,是不是在获取数据接口,返回的数据里那方法里判断是否会好些呢