By current implementation, many requests are sent
In order to prevent too many redundant requests, use lodash memoize to reduce.
npm install -save lodash
Then change src/actions/index.js
import _ from 'lodash'
// assign fetchUser to memoize, so that function instance is the same
export const fetchUser = (userId) => dispatch => _fetchUser(userId, dispatch);
// define a function to adapt memoize
const _fetchUser = _.memoize(async (userId, dispatch) => {
const response = await jsonPlaceholder.get(`/users/${userId}`)
dispatch({type:'FETCH_USER', payload: response.data})
})
request and response are cached, so no redundant request will be sent
沒有留言:
張貼留言