4

I use react-navigation 5 and having issues because the params shows older values.

ScreenList.js

      const handleFirstUser = () => {
         const userDetail = {'name': 'First User'};
         navigation.navigate('Details', { detail: userDetail});
      }


      const handleSecondUser = () => {
         const userDetail = {'name': 'Second User'};
         navigation.navigate('Details', { detail: userDetail});
      }

The methods are called from a button and do go to Details Screen but the value is whichever was loaded initially:

ScreenDetails.js

    const DetailsScreen = (props) =>{

       const { navigation, route } = props;
       const { params } = route;
       const userDetail = params.name;
  
      }

First time the app the loads, first user is loaded and correctly shows name. Then go back to the list screen, click user two. Still the first user is shown. I tried to clean up with useEffect but it doesnt have any effect:

    useEffect(()=>{

     return(()=>{
         navigation.setParams({name: undefined});
     });
   }, [])

how can I reset setParams each it laods and use the values passed to it currently?

Wede Asmera Tseada
  • 513
  • 2
  • 4
  • 14

0 Answers0