我需要向服务器发出两个连续请求:
getAllPersons,然后是 getPersonsForSelect。
当应用程序加载时,这些请求应该发送到服务器,我使用 useEffect 使它们:
useEffect(() => {
dispatch(getAllPersons(mainPersonId))
dispatch(getPersonsForSelect(processName))
},[])
const allbossPerson = useSelector(store => { return store.persons.allbossPerson })
const personsForSelect = useSelector(store => { return store.persons.personsForSelect })
问题是使用 console.log() 我得到每台服务器的两次点击,即 共 4 个:
import {
GET_ALL_PERSONS,
GET_PERSONS_FOR_SELECT
} from "../types/person"
const initialState = {
allbossPerson: [],
personsForSelect: []
}
export const persons = (state = initialState, action) => {
switch (action.type) {
case GET_ALL_PERSONS:
console.log('GET_ALL_PERSONS')
const allPersons = action.allPersons.slice();
return {
...state,
allbossPerson: allPersons
}
case GET_PERSONS_FOR_SELECT:
console.log('GET_PERSONS_FOR_SELECT')
const personsForSelect = action.personsForSelect.slice();
return {
...state,
personsForSelect: personsForSelect
}
default:
return state
}
}
那些。在控制台中,我有这张图片:
GET_PERSONS_FOR_SELECT
2personReducer.js:14 GET_ALL_PERSONS
personReducer.js:21 GET_PERSONS_FOR_SELECT
我究竟做错了什么?为什么他们被调用了 2 次?