reactjs - 如何在 React 中将数据传递到 <redirect> 中的页面?

标签 reactjs react-router

现在我正在使用重定向到新页面,但我不知道如何将数据传递到新页面。这就是我正在做的事情:-

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

        };        
    }

    render() {
        if (this.state.redirect) {
            return <Redirect push to="./shopdetail" data={this.state.redirect}/>;
        }

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

}
export default ShopsCatOptions

正确的做法是什么?

最佳答案

我为实现这一目标所做的就是使用历史 Prop ,

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

在 ShopDetail 组件中,您可以访问该对象,例如,

this.props.location.state.key

编辑:要获取 Prop 中的历史记录,您的主要组件应该具有,

import { BrowserRouter, Route } from 'react-router-dom';
...
<BrowserRouter>
  <Switch>
    <Route path="/home" component={Home} />
    <Route path="/user" component={User} />
    <Route path="*" component={page404} />
  </Switch>
 </BrowserRouter> 

关于reactjs - 如何在 React 中将数据传递到 <redirect> 中的页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50653515/

相关文章:

javascript - React-Router - 显示特定 ID 的详细信息

reactjs - 导入 nft.storage 时无法解析 ipfs-car/blockstore/memory

reactjs - 类型 'hot' 中缺少属性 'Module'

javascript - 在 React.js 中使计数器不小于零

javascript - 为什么 clickHandler 没有更新状态?

javascript - 使用 Link 标签并在 React 中传递数据

javascript - 如何在 ReactJS 中集成普通(普通)JavaScript?

node.js - 如何在生产模式下使用 npm 代理(如 package.json 中的 proxy 参数)?

javascript - React Native Navigator renderView 返回条件不合逻辑

javascript - 通过react-router处理带有斜杠的路径的方法是什么?