я проверяю наличие данных для входа в систему и, если успех, я публикую работу .... я хочу извлечь данные полезной нагрузки из действия входа в другое действие.Ниже приведен мой код действия и код редуктора для входа.я хочу получить в действии 'createjob' редукс
const signin = (cred) => {
return (dispatch, getState, {getFirebase, getFirestore}) => {
const firestore = getFirestore();
var query = firestore.collection('Employers').where("email", "==", cred.email)
query = query.where("password", "==", cred.password)
.get()
.then((querySnapshot) => {
querySnapshot.forEach(function(doc) {
// Check if a document was returned
if(querySnapshot.empty === true) {
dispatch({type: 'SIGN_IN_ERROR', cred});
}
// doc.data() is never undefined for query doc snapshots
console.log(doc.id, " => ", doc.data());
email = cred.email
empname=doc.data().FirstName;
dispatch({type:'SIGN_IN', cred, payload:{cred, empname, email}});
history.push('/dashboard')
});
})
.catch((err) => {
console.log("No record");
dispatch({type:'SIGN_IN_ERROR', err});
});
}
};
мой код редуктора
const signin = (state = initState, action) => {
switch(action.type){
case 'SIGN_IN':
const empname = action.payload;
console.log('====================================');
console.log(empname, action.cred.email);
console.log('====================================');
return {
...state,
authError : null,
}
case 'SIGN_IN_ERROR':
console.log('sign in error ',action.err);
return {
...state,
authError : 'Login Failed'
}
default:
return state;
}
}
export default signin;
я хочу получить в следующем действии
const createJob = (project) => {
return (dispatch, getState, {getFirebase, getFirestore}) => {
const firestore = getFirestore();
const empname = signin.action.payload;
const email = signin.action.payload;
var query = firestore.collection('Employers').where("email", "==", email)
firestore.collection('Jobs').add({
...project,
postedby:empname,
postedon: new Date()
}).then(()=>{
dispatch({type:'CREATE_JOB', project});
}).catch((err)=>{
dispatch({type:'CREATE_JOB_ERROR', err});
})
}
};