React JS Como passar dados entre páginas no Hook (useEffect)

Aug 21 2020

Estou tentando passar um objeto de dados para outra página, mas não consigo buscar os dados na segunda página. o código abaixo é que estou usando

A primeira página passa os dados em LINK

 <Link to={{ pathname: `${path}/users/${organization.id}`,
                                            data: organization
                                        }}>  <img src={config.s3Bucket + "/" + organization.logo} />
 </Link >

Aqui estou passando o objeto no parâmetro 'data'

Segunda página

import React, { useState, useEffect } from 'react';
function UserList({ history, match }) {
const { path } = match;
const { id } = match.params;
const [organization, setOrganization] = useState(null);

// const { data } = this.props.location

useEffect(() => {
    
    // console.log(location.data);

}, []);  }   export { UserList };

Tentei 'location.data' e 'this.props.location', mas não consigo buscar os dados, por favor me ajude a resolver este problema.

Respostas

5 spycbanda Aug 21 2020 at 17:42

Você pode fazer assim

<Link to={{ pathname: `${path}/users/${organization.id}`, state: organization}}>
   <img src={config.s3Bucket + "/" + organization.logo} />
 </Link >

e na segunda página

import React, { useState, useEffect } from 'react';
import {useLocation} from 'react-router-dom';

function UserList({ history, match }) {
  const { path } = match;
  const { id } = match.params;
  const [organization, setOrganization] = useState(null);

  const { state } = useLocation();

  useEffect(() => {
    console.log(state);
  }, []);
}   

export { UserList };
MA2WEB Aug 21 2020 at 17:48

usar com roteador

import { withRouter } from "react-router-dom"







export default withRouter(ComponentName)