Skip to main content

keep re-render issue for custom hook - useEffect, fixed by useMemo to wrap object

solution is:


for object, need wrap with useMemo in this case, if function, need wrap with useCallback

const accountRoles = useMemo(() => account?.roles || [], [])

 issue was in listing.tsx

const accountRoles = account?.roles || [], []
const [todoDocs] = useListingTodoDocs(listingId, accountRoles, false)

in useListingTodoDocs, ulilize useEffect to fetch data, acccountRoles is object, so always
change and trigger useEffect action.

useEffect(() => {
const fetchListingTodos = async () => {
const result = await client.query({
query: GET_TODO_DOCUMENTS,
variables: { listingId: listingId },
fetchPolicy: 'no-cache',
})

const {
data: { getTodoDocuments },
} = result

const filterTodosByRole =
accountRoles.length === 0
? getTodoDocuments.filter(
(doc: Document) =>
!doc.name.includes(LISTING_AGREEMENT_BROKER_SIGNATURE)
)
: getTodoDocuments

dispatch({
type: 'fetchListingTodosSuccess',
payload: filterTodosByRole,
})
}
fetchListingTodos()
}, [refreshFlag, client, listingId, accountRoles])


Comments

Popular posts from this blog

apollo client v3 - clean up non-needed packages

v3: https://github.com/apollographql/apollo-client clean up: ApolloProvider useQuery, useMutation, useApolloClient Apollo Client >= 3 includes React hooks functionality out of the box. You don't need to install any additional packages. https://www.apollographql.com/docs/react/api/react/hooks/ //import { ApolloProvider } from '@apollo/react-hooks' import { ApolloProvider } from '@apollo/client/react' //import { useQuery, useMutation, useApolloClient } from '@apollo/react-hooks' import { useQuery, useMutation, useApolloClient } from '@apollo/client' How i can CATCH any error (network and graphql), and prevent promise.reject()  https://github.com/apollographql/apollo-client/issues/6469 npm uninstall @apollo/react-hooks https://github.com/apollographql/apollo-link npm uninstall apollo-link npm uninstall apollo-client npm uninstall apollo-link-error npm uninstall apollo-link-http npm uninstall apollo-link-ws npm uninstall apollo-cache-inmemory

A component is changing an uncontrolled input of type text to be controlled error in ReactJS - Formik

 https://stackoverflow.com/questions/47012169/a-component-is-changing-an-uncontrolled-input-of-type-text-to-be-controlled-erro default value can't be undefined  case 'listingBrokerOfficeName' : value = ( listingBroker || {}). officeName break change to: case 'listingBrokerOfficeName' : value = ( listingBroker || {}). officeName || '' break