[英]Passing object through React-Router v5 Link
我想通过react-router Link
传递对象( chartData
)所以我试过这样:
<Switch> <Route path="/csvFile" exact component={CsvFilePage} /> <Route path="/csvFile/:id" component={CsvFilePage} /> </Switch>
(这里有Link
,我想将chartData
传递给 CsvFilePage)
const SettingMenu = ({ show, chart, chartData }) => { return ( <> <Setting show={show}> <Box> <Link to={{ pathname: `/csvFile/${chart.key}`, state: { chartData: JSON.stringify(chartData), }, }} > <InsertDriveFileIcon style={{ fontSize: 40 }} /> <p>csv</p> </Link> </Box> </Setting> </> ); };
这是CsvFilePage
const CsvFile = ({ match }) => { return ( <div className="preview"> {match.params.id === "Bar" && chartType[0]} </div> }
我搜索了它并尝试使用它,但我不知道如何从Link
获取状态。 我可以获取params.id
但我不知道如何获取对象所以我尝试以与获取 id 相同的方式获取对象但我没有工作
和chartData
数据如下所示:
{ labels: defaultLabels, datasets: [ { label: "dataSetting", data: defaultDatas, backgroundColor: defaultBackgroundColor, }, ], }
您的州位于location
https://reactrouter.com/web/api/location
这就是你如何得到它:
const CsvFile = ({ match, location }) => { const { chartData } = location.state; return ( <div className="preview"> {match.params.id === "Bar" && chartType[0]} </div> }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.