更新 2:
另一个更新 - 我正在解决这个问题。来自 redux-form 的值被发送到动作,但甚至缩小到这个:
export function signinUser(values) {
console.log('function about to run, email: ' values.get('email'));
}
我什至没有看到控制台日志条目。但是,只有一个简单的控制台日志的相同功能可以工作:
export function signinUser() { console.log('函数即将运行'); }
更新:
工作代码和非工作代码之间的唯一区别是redux-form
和immutablejs
。我尝试将这些反向移植到工作应用程序,现在行为是相同的。
我正在提交我的表单并将 redux-form 发送values
到我正在使用的函数values.get('email')
并将values.get('password')
值传递给 axios。
handleFormSubmit(values) {
console.log('sending to action...', values);
this.props.signinUser(values);
}
我有一个登录表单,onSubmit
我正在将值传递给一个调度动作的函数。
该代码在我分叉的回购中有效,但我正在将其转移到我自己的应用程序中。我遇到的问题是该函数似乎没有触发,我正在努力找出在哪里添加console.log
语句。
唯一console.log
触发的是第 2 行。
export function signinUser(values) {
console.log('function will run');
return function(dispatch) {
axios.post(TOKEN_URL, {
email: "a@a.com",
password: "a",
method: 'post',
credentials: 'include',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
},
})
.then(response => {
console.log('response: ', response.data.content.token );
// If request is good...
// - Update state to indicate user is authenticated
dispatch({ type: AUTH_USER });
// decode token for info on the user
var decoded_token_data = jwt_decode(response.data.content.token);
// - Save the JWT token
localStorage.setItem('token', response.data.content.token);
console.log(localStorage.getItem('token'));
// - redirect to the appropriate route
browserHistory.push(ROOT_URL);
})
.catch(() => {
// If request is bad...
// - Show an error to the user
dispatch(authError('Bad Login Info'));
});
}
}