Я использую карту, чтобы получить идентификаторы из массива объектов в рендере.
Мой код:
class AppliedCandidates extends Component {
render() {
const {
appliedjobs
} = this.props
const {
joblists
} = this.props {
joblists && joblists.map(joblist => {
this.props.getAppliedJobs(joblist.id)
})
}
return ( <
div > {
appliedjobs && appliedjobs.map(appliedjob => {
return <ol >
<
li > {
appliedjob.jobid
} < /li> <
li > {
appliedjob.candidatephoneno
} < /li> <
/ol>
})
} <
/div>
);
}
}
const mapStateToProps = (state) => {
console.log("state", state);
return {
joblists: state.getJobs.job,
appliedjobs: state.getAppliedJobs.appliedjob
}
}
const mapDispatchToProps = (dispatch) => {
return {
getAppliedJobs: (joblists) => dispatch(getAppliedJobs(joblists))
}
}
export default connect(mapStateToProps, mapDispatchToProps)(AppliedCandidates);
и в следующем коде, который находится в Redux action.js, если я раскомментирую переменную массива "applyjobs", процесс перейдет в бесконечный цикл.Если я закомментирую это, я получу только последнее значение.
var appliedjobs = []
const getAppliedJobs = (joblists) => {
return (dispatch, getState, {
getFirebase,
getFirestore
}) => {
const firestore = getFirestore();
firestore.collection('Jobs').doc(joblists).collection('AppliedJobs').where("jobid", "==", joblists)
.get()
.then((querySnapshot) => {
if (querySnapshot.empty === true) {
dispatch({
type: 'GET_APPLIED_JOB_ERROR',
joblists
});
} else {
//appliedjobs =[]
querySnapshot.forEach(function(doc3) {
appliedjobs.push({
candidatephoneno: doc3.data().candidatephoneno,
jobid: doc3.data().jobid,
});
});
dispatch({
type: 'GET_APPLIED_JOB',
payload: appliedjobs
});
}
})
}
};
Как получить значения?