当从一个页面重定向到另一个页面时,如何将prop传递给另一个组件。
当我单击查看按钮时,我想将details
状态传递给另一个组件,即{PAGING},它将在新页面上打开。
我正在尝试使用URL <Route path="/detilaing" exact component={PAGING} />
在新页面上打开PAGING组件
在按钮上单击我只需要选项卡,然后单击按钮的详细信息并隐藏其他部分
答案 0 :(得分:1)
您需要更新一些内容
export default function App() {
return (
<Router>
<Combined />
</Router>
);
}
<Route path="/detilaing/:ability" exact component={PAGING} />
现在,您可以在Movement组件中使用useHistory
来获取历史对象并调用history.push
。请记住,重定向仅在呈现组件时有效,而在事件处理程序中不起作用
状态更新会在下一个渲染周期中反映出来,而不是立即反映出来。因此,您应该仅依赖于函数param来重定向
const handleDetails = name => {
setdetails(name);
if (name) {
return history.push(`/detilaing/${name}`);
} else {
return history.push(`/`);
}
};
import React from "react";
export default function PAGING({ match }) {
return (
<div>
<p>{match.params.ability}</p>
</div>
);
}
现在假设您要向分页组件传递多个字符串,并且您不希望在刷新时将其持久化,则可以使用state传递数据。
history.push({
pathname: '/detilaing',
state: { detail }
})
并从位置在page.js中使用它
export default function PAGING({ location }) {
return (
<div>
<p>{location.state && location.state.detail}</p>
</div>
);
}
答案 1 :(得分:0)
this.context.router.push({
pathname: '/detilaing',
state: {details: this.state.details}
})
访问状态:
this.props.location.state.details