Как отправить данные при маршрутизации из компонента div на новую страницу в React?

У меня есть компонент div внутри маршрута, который является маршрутом по умолчанию. Из этого компонента onClick я хочу отправить объект JSON на новую страницу. Это будет недавно открытая страница. Прямо сейчас я не мог найти лучшей альтернативы, поэтому я отправляю весь объект JSON в URL-адресе, но я знаю, что это неправильный способ сделать это. Вот как я это делаю. Я отправляю данные объекта JSON в URL-адресе и использую push-перенаправление для перехода на новую страницу './shopdetail':-

import React, { Component } from 'react';
import { Redirect } from 'react-router-dom';


class ShopsCatOptions extends React.Component{
    constructor(props){
        super(props);
        this.state = {            
            shopd: this.props.shop.name,
            redirect:false,
            data:JSON.stringify(this.props.shop)

        };        
    }
    handleOnClick = () => {
      this.setState({
        redirect: true,
      });
    }


    render() {
        if (this.state.redirect) {

            return <Redirect push to = {"./shopdetail/"+this.state.data}/>;
        }

        return(
            <div class = "expndinnerm" onClick = {this.handleOnClick}>
            {
                this.state.shopd        
            }
            </div>
        )
    }

}
export default ShopsCatOptions

Как лучше отправить эти данные. Можем ли мы отправить его способом, аналогичным тому, как мы передаем реквизиты внутренним компонентам?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
89
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете использовать историю реквизита для толчка:

this.props.history.push({
             pathname:"/shopdetail",
             state:{
                 key:"value"
              }
            });

Ключевое значение - это все, что вы хотите, в вашем случае в основном логическое значение перенаправления.

Внутри вашего неклассового компонента вы можете получить доступ к состоянию через:

this.props.shopdetail.state (just an example)
Ответ принят как подходящий
      You can do something like this         
       <Redirect to = {{
            pathname: '/shopdetail',
            state: { referrer: this.state.data}
        }} />

       To access:

       this.props.location.state && this.props.location.state.referrer

Другие вопросы по теме